{"id":20969382,"url":"https://github.com/cubicpath/haloinfinitegetter","last_synced_at":"2025-05-14T09:34:22.059Z","repository":{"id":37046354,"uuid":"455271686","full_name":"Cubicpath/HaloInfiniteGetter","owner":"Cubicpath","description":"A simple GUI app to get live Halo data straight from Halo Waypoint.","archived":false,"fork":false,"pushed_at":"2024-07-31T11:49:02.000Z","size":1213,"stargazers_count":11,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-24T08:50:03.956Z","etag":null,"topics":["client","gui-application","halo","halowaypoint","pypi-package","pyside6","python","python3","qt-for-python","unofficial"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/hi-getter/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cubicpath.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-03T17:57:37.000Z","updated_at":"2024-09-10T16:32:48.000Z","dependencies_parsed_at":"2024-05-05T02:32:19.425Z","dependency_job_id":"b8693624-9e72-4837-b257-cc8e7de0b664","html_url":"https://github.com/Cubicpath/HaloInfiniteGetter","commit_stats":{"total_commits":712,"total_committers":3,"mean_commits":"237.33333333333334","dds":0.0632022471910112,"last_synced_commit":"3fde020a7ca347e13dcd078d2ccd93775063bf79"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cubicpath%2FHaloInfiniteGetter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cubicpath%2FHaloInfiniteGetter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cubicpath%2FHaloInfiniteGetter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cubicpath%2FHaloInfiniteGetter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cubicpath","download_url":"https://codeload.github.com/Cubicpath/HaloInfiniteGetter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254112691,"owners_count":22016827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","gui-application","halo","halowaypoint","pypi-package","pyside6","python","python3","qt-for-python","unofficial"],"created_at":"2024-11-19T03:21:03.052Z","updated_at":"2025-05-14T09:34:21.396Z","avatar_url":"https://github.com/Cubicpath.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"HaloInfiniteGetter\n===============\n\n[![MIT License](https://img.shields.io/github/license/Cubicpath/HaloInfiniteGetter?style=flat-square)][license]\n[![PyPI](https://img.shields.io/pypi/v/hi-getter?label=PyPI\u0026logo=pypi\u0026style=flat-square)][homepage]\n[![Python](https://img.shields.io/pypi/pyversions/hi-getter?label=Python\u0026logo=python\u0026style=flat-square)][python]\n[![CPython](https://img.shields.io/pypi/implementation/hi-getter?label=Impl\u0026logo=python\u0026style=flat-square)][python]\n\n------------------------------\n\nA simple way to get live Halo data straight from Halo Waypoint.\n\n------------------------------\n\n**Note: This project is in a public alpha, and as such, many features are not complete.**\n\n### Disclaimer:\n_**HaloInfiniteGetter is in no way associated with, endorsed by, or otherwise affiliated with the\nMicrosoft Corporation, Xbox Game Studios, or 343 Industries. Depending on how you use it, use of this app\nmay or may not be considered abuse by the aforementioned parties.**_\n\n### Other Documents:\n- [Changelog][changelog_github]\n- [License][license_github]\n\n### Table of Contents\n- [About](#about)\n- [How to Use](#how-to-use)\n     - [Installation](#installation)\n     - [Authentication](#authentication)\n     - [Searching](#searching)\n          - [Knowing Where to Search](#knowing-where-to-search)\n          - [GET](#get)\n          - [SCAN](#scan)\n     - [Cache Explorer](#cache-explorer)\n     - [Importing and Exporting Cached Requests](#importing-and-exporting-cached-requests)\n     - [Outputs](#outputs)\n          - [Media Output](#media-output)\n          - [Text Output](#text-output)\n     - [Themes](#themes)\n          - [Theme File Structure](#theme-file-structure)\n\n\nAbout:\n---------------\nHaloInfiniteGetter is a GUI application written using [Qt for Python][PySide] that allows you to easily view data\nhosted on [HaloWaypoint] API endpoints.\n\nYou can view both Image and Text output, with these results being cached in the user's `.cache/hi_getter/cached_requests` directory,\nto eliminate unnecessary API calls.\n\nHow to Use:\n---------------\n\n### Installation:\n- First, install Python 3.10 using [this link][python310]\n- Then, open command prompt (Win + R -- type in \"cmd\") and type `pip install hi_getter`\n  - Optionally, to install the latest unstable version, type `pip install git+https://github.com/Cubicpath/HaloInfiniteGetter.git`\n- And you are done! To launch the program simply type `hi_getter`\n  - Once launched, you can create a desktop shortcut by using the `Create Desktop Shortcut` tool\nunder the `Tools` context menu\n\n### Authentication:\nAs this app is unofficial, you must use your own API key, which you can get by logging in to [HaloWaypoint] and either getting\ndata from the authentication headers, or from the website's cookies.\n\nGuide:\n- Sign in to www.halowaypoint.com using your xbox account\n- Navigate to the Cookies for www.halowaypoint.com\n  - On Firefox -- F12 \u003e Move to the \"Storage\" tab \u003e Under \"Cookies\" select https://www.halowaypoint.com\n- Double-click the \"wpauth\" cookie value and copy with CTRL + C\n- Open the Settings window, unlock the input by pressing the \"Edit Auth Key\" button, then paste the copied value.\n\n![Settings](https://i.imgur.com/79t0MTpl.png)\n\n- Press the Set button, and you should now be authenticated!\n\n\n### Searching:\n\nWhen you access a resource and are properly authenticated, it is cached to your\n`~/.cache/hi_getter/cached_requests` directory.\n\nBy default, when you access an already-cached resource, HaloInfiniteGetter checks for a new\nversion of said resource on HaloWaypoint servers. The old version is stored in\n`~/.cache/hi_getter/old_files` along with its version identifier.\n- You can disable this behaviour by unchecking the **Update Cached Resources** checkbox in Settings.\n\n#### Knowing Where to Search:\n\n![Input Section](https://i.imgur.com/8JPsG5y.png)\n\nAn example resource (`Progression/file/Calendars/Seasons/SeasonCalendar.json`) is pre-filled out in the\npath input section.\n\nYou may omit `progression/file/` and `images/file/` from searches, so long as the file extension of the resource\nindicates data or media (ex: json defaults as `progression/file/`, png and jpg defaults as `images/file/`).\n\n#### GET:\nGets the singular resource from the given path and outputs it.\n\n#### SCAN:\n**Warning: This may display various flashing images in quick succession.**\n\nRecursively scan a given JSON resource for paths to more resources, ignoring already scanned resources.\nThis results in caching ALL resources that are referenced by any other resource with some tie to the original\nresource path.\n\nIf you want to scan your own json file(s) for resource paths, you can use the `Scan Files...` tool in the\n`Tools` context menu.\n\n### Cache Explorer:\nYou can view all cached files using the Cache Explorer, which is on the left-hand side of the main window.\n\nIt has 1 setting:\n1. **Icon Mode** --- Changes how the file/folder icons are rendered\n   - **No Icons** --- Removes all icons in the view\n   - **Default (Default)** --- Renders icons normally (like explorer)\n   - **Preview Images** --- Use image previews as icons for images.\n      This can use upwards of ~2GB of memory if you have a lot of image files\n\nContext Menu actions:\n- **Open in View** --- Open the cached file's contents in one of the output views\n- **Open in Default App** --- Open the cached file in its extension's default app\n- **Folding**\n  - **Expand** --- Expand the selected directory\n  - **Expand Recursively** --- Expand this directory and any subdirectories\n  - **Expand All** --- Expand all directories\n  - **Collapse** --- Collapse the selected directory\n  - **Collapse All** --- Collapse all directories\n- **Copy Full Path** --- Copy the cached file's path\n- **Copy Endpoint Path** --- Copy the path, translated into it's associated endpoint\n- **Copy File Contents** --- Copy the contents of the file onto your clipboard.\n\n![Cache Explorer](https://i.imgur.com/KbdOE95l.png)\n\n\n### Importing and Exporting Cached Requests\nYou can use the `File` context menu to easily import and export archive files containing cached requests.\nOnce imported, you can view the data in the [Cache Explorer](#cache-explorer).\n\nSupported archive types are:\n- 7Zip Archives (`*.7z`)\n- ZIP Files (`*.zip` \u0026 `*.piz`)\n- TAR Files (`*.tar`, `*.tar.gz`, `*.tgz`, `*.tar.bz2`, `*.tbz2`, `*.tar.xz`, `*.txz`)\n   - `gzip`, `bzip2`, and `xz` are the supported compression algorithms\n\n\n### Outputs:\nBoth the media and the text output can be detached and reattached from the main window.\nThis allows greater flexibility, like viewing only the image in fullscreen.\n\n![Imgur](https://i.imgur.com/n82Any7l.png)\n\n#### Media Output:\nThe media output shows the currently loaded image to the user, scaled to fit the current window.\n\nIt has two settings:\n1. **Aspect Ratio Mode** --- Changes how the aspect-ratio is transformed to fit the window\n   - **Ignore** --- Transform the aspect ratio to meet the output's dimensions\n   - **Keep (Default)** --- Keep the aspect ratio without expanding past the output's dimensions\n   - **Expanding** --- Expand the image's size to keep its aspect ratio\n2. **Image Transform Mode** --- Changes how the image is rendered to a different size\n   - **Fast (Default)** --- Faster, looks more jagged\n   - **Smooth** --- Smooths edges, looks better in some cases\n\n#### Text Output:\nThe text output displays any text data loaded by the given path, or an error response from the server.\n\nPath are automatically detected and hyperlinked for ease of use, which allows you to easily browse\nmultiple paths in succession.\n\nIt has one setting:\n1. **Line Wrap Mode** --- Changes how lines are wrapped inside the text output\n   - **No Wrap** --- No line wrapping, use the horizontal scroll wheel instead\n   - **Widgets (Default)** --- Line wrap if a word does not fit the text output's dimensions\n   - **Fixed Pixel** --- Line wrap after every space/seperator\n   - **Fixed Column** --- Line wrap after every character (excluding spaces)\n\n### Themes:\nThemes are a way to style already-existing elements (Think CSS). They are held in a directory with their resources\nand stylesheet in the same folder level.\n\n#### Theme File Structure:\n    ../\n    │\n    ├───[theme_id]/\n    │       ├─── [icon1_name].svg\n    │       ├─── [icon2_name].svg\n    │       ├─── [icon3_name].svg\n    │       └─── stylesheet.qss\n    │\n\nThe current builtin themes are:\n- `Breeze Dark`\n- `Breeze Light`\n- `Legacy (Default Qt)`\n\nWhile the current breeze themes are slightly modified versions, you can view the original themes at [BreezeStyleSheets].\n\n[BreezeStyleSheets]: https://github.com/Alexhuszagh/BreezeStyleSheets \"BreezeStyleSheets\"\n[changelog_github]: https://github.com/Cubicpath/HaloInfiniteGetter/blob/master/CHANGELOG.md \"Changelog\"\n[HaloWaypoint]: https://www.halowaypoint.com \"Halo Waypoint\"\n[homepage]: https://pypi.org/project/hi-getter/ \"HaloInfiniteGetter PyPI\"\n[license]: https://choosealicense.com/licenses/mit \"MIT License\"\n[license_github]: https://github.com/Cubicpath/HaloInfiniteGetter/blob/master/LICENSE \"MIT License\"\n[PySide]: https://pypi.org/project/PySide6/ \"PySide6\"\n[python]: https://www.python.org \"Python\"\n[python310]: https://www.python.org/downloads/release/python-3100/ \"Python 3.10\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubicpath%2Fhaloinfinitegetter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubicpath%2Fhaloinfinitegetter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubicpath%2Fhaloinfinitegetter/lists"}