Giter VIP home page Giter VIP logo

miiverse-pc's Introduction

Miiverse-PC

This is a Miiverse portal client for PCs, specifically for Pretendo Juxtaposition. It also has some other useful features, such as downloading a Pretendo user's profile data.

⚠️ Notice: Unfortunately, this doesn't work anymore.

In the 2 years since I created this, the Pretendo Network account server added verification checks that check if the request is coming from a real console or an emulator with a valid console dump.

I might work on fixing this in the future, but passing these checks would require some major changes and make this app require a console dump.

Installation

Releases

Choose whether you want to use the MSIX installer or the portable zip file. The installer is easier to use (after installing the certificate for the first time) and automatically sets up a Start Menu and Settings installed apps entry, while the portable version makes it easier to quickly try out the app without installing.

Installer (.MSIX)

Certificate installation

First, you need to install and trust my MSIX signing certificate. You only need to do this once when installing for the first time, not when updating.

  1. Download the release file named Miiverse-PC_MSIX_Certificate.cer.
  2. Double-click the certificate file, click the details tab, and scroll down to and select "Thumbprint." On the bottom of the dialog, it should display 428f9c7f9ac01e6ad06d38183c3d31065803d977. If it does not, DO NOT TRUST THE CERTIFICATE and create an issue in this repo.
  3. If the thumbprint matches, go back to the general tab and click "Install Certificate..."
    1. Select "Local Machine" and then Next. Click Yes on the User Account Control dialog.
    2. Select "Place all certificates in the following store," click Browse, and select the "Trusted People" certificate store. Then click OK and Next.
    3. Finally, click Finish to install and trust the certificate.

If you ever want to remove my certificate, open "Manage computer certificates" (certlm.msc) in the Start menu. Then open the Trusted People\Certificates store and delete any certificates named "MatthewL246."

App installation and updates
  1. Download the lastest release MSIX file that matches your PC's architecture (x86, x64, or arm64).
  2. Simply run the installer and click Install, Update, or Reinstall.

If an "Open with..." dialog shows up when you try to run the installer, you need to install the App Installer first. (If you don't have access to the Microsoft Store, it's also availible from Microsoft's GitHub, but you'll need to use Add-AppxPackage in PowerShell to install it).

Portable (.ZIP)

  1. Download the lastest release zip file that matches your PC's architecture (x86, x64, or arm64).
  2. Extract this zip to wherever you want to run the app from.
  3. Run the Miiverse-PC.exe app inside the extracted zip folder.
  4. Optionally, create shortcuts to the app on your desktop or in the Start menu (%APPDATA%\Microsoft\Windows\Start Menu\Programs).

Latest CI builds

⚠️ CI builds may be unstable. Use at your own risk! ⚠️

You may download the latest CI build to get the most recent updates.

  1. Open the GitHub Actions build page.
  2. Select the most recent successful run.
  3. Download either the packaged build (the installer MSIX) or the unpackaged build (the portable ZIP).

Note that the CI build MSIX installer uses a different signing certificate than the release builds for security reasons, so you will need to trust that certificate too. Follow the same steps as installing the release certificate but using the Actions certificate instead. The Actions certificate thumbprint should be 0BF22E6635F39155A64E82AFED0077A771E4D164.

Getting the password hash

  1. Log in to your Pretendo account at pretendo.network (or a different Pretendo server that is hosting the website).
  2. Click the "Download account files" button and save the zip.
  3. Extract the zip and open the account.dat file in any text editor. The password hash is the 64-character hash after AccountPasswordCache=.

miiverse-pc's People

Contributors

dependabot[bot] avatar matthewl246 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

miiverse-pc's Issues

General roadmap and plans

Now that v0.1.0 is released, I will make a public roadmap and general plans tracking issue here.

General app features

  • Save connection settings and account information between runs
  • Option to log in with password instead of hash (Using https://account.pretendo.cc/v1/api/admin/mapped_ids and a re-implementation of NintendoPasswordHash in C#)
  • Settings dialog allowing custom allowed certificate hashes, client ID, client secret, and Miiverse title ID (currently hardcoded). Also, move the other rows of settings to the settings dialog.
  • Settings class to store the settings and simplify storing settings with serialization.

Juxt features

  • Inject JavaScript code to emulate Wii U functions, specifically for sending drawings and screenshots
  • Send custom screenshots
  • Trigger custom screenshot upload when clicking the select screenshot button on the new post form
  • Send custom drawings
  • Test new Juxt user creation from PNID (working)
  • Test on the official Pretendo beta servers (Find someone else with beta access? Or maybe just to ask to be a tester?)

Packaging and deployment

  • Find a reliable way of building the unpackaged version without Visual Studio
  • Build both a MSIX-packaged app and an unpackaged version (this does not seem to be a supported configuration though, so manual csproj edits might be needed)
  • Simplify the install process so users don't need to install so many dependencies

Resources: Overview, Packaged, Unpackaged, Self-contained

GitHub actions

  • Matrix build for configuration and platform
  • Build result caching
  • Upload unpackaged output and MSIX package
  • Separate workflow for packaged and unpackaged versions

Documentation

  • Better and more clear documentation for installation
  • Documentation for basic functionality: username, password hash, account server, and platform
  • Full documentation for every setting

What doesn't work (non-goals)

  • Setting a custom Host header inside the WebView: blocked by Chromium and causes an ERR_INVALID_ARGUMENT error. Because of this, adding portal.olv.pretendo.cc to the system hosts file is necessary.
    • Note: this might be possible with Chromium host-resolver-rules, but it would require killing and restarting the WebView process to change.
  • Disabling the browser's certificate verification: is a very bad idea for security reasons.

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.