Hacking Has anyone made any documentation for wupclient?

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
Question is in the title.

I'm very good at using python scripts if I have some documentation, but I suck at reading through the code itself to figure things out.

Has anyone compiled a list of the commands and arguments that wupclient provides, and what they do?
 
Last edited by Irastris,

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
Wupclient code is pretty much self explanatory. If you are good at python, don't be afraid to read it, if not, I suggest you wait for a more end user friendly tool.
 
  • Like
Reactions: zeldaism

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
Wupclient code is pretty much self explanatory. If you are good at python, don't be afraid to read it, if not, I suggest you wait for a more end user friendly tool.

I never said I was good at Python itself, I said I was good at using Python scripts. I'm very quick to learn how to use them as long as I have proper documentation.
Please don't use that elitist statement on me. I know how to prevent getting bricked. If I was worried I'd screw something up, I wouldn't ask about documentation for the script at all.
 
Last edited by Irastris,

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
I never said I was good at Python, I said I was good at using Python scripts. I'm very quick to learn how to use them as long as I have proper documentation.
Please don't use that elitist statement on me. I know how to prevent getting bricked. If I was worried I'd screw something up, I wouldn't ask about documentation for the script at all.
I never said you were good at python, I said "if", If you think this is elitism, elitism it is. this is the last explanation I'll write on this topic: wupclient.py is not a application, it's a library for other applications like wupclientgui.py, a library's targeting user group is programmers.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
I never said you were good at python, I said "if", If you think this is elitism, elitism it is. this is the last explanation I'll write on this topic: wupclient.py is not a application, it's a library for other applications like wupclientgui.py, a library's targeting user group is programmers.
I know that. I'm perfectly capable of implementing libraries in the python command line. IF I HAVE THE PROPER DOCUMENTATION.

The fact that you continue to ignore that question implies to me that you obviously don't have any sort of documentation yourself, and likely don't know anyone who does.
So I thank you for all your input thus far, but it is obviously leading anywhere useful to me.
 
Last edited by Irastris,

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
Now you're just making fun of yourself.
I fail to understand why you think that. I may not be using the proper terminology, but my meaning is still completely valid.

By the python command line, I mean what you get when you run "python" in CMD.
By implementing libraries, I mean importing the classes. In the case of WUPClient, I'd input "from wupclient import wupclient" into python.

Happy now?
 

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
By implementing libraries, I mean importing the classes. In the case of WUPClient, I'd input "from wupclient import wupclient" into python.

Happy now?
Pretty happy, I said I've done explaining, now I'm just having fun :D so I won't tell you that's not called "implementing" but "using" a library. learning python is fun you should do it, and I'm pretty sure you get that "from wupclient import wupclient" from another post of me in another thread.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
I'm pretty sure you get that "from wupclient import wupclient" from another post of me in another thread.

You can think that if you want, but I actually used common knowledge.
For example, WUPClient uses "from time import sleep". Knowing that time is a library, and sleep is a class, I can conclude that using WUPClient would mean typing "from wupclient import wupclient", as that's the only class made available by wupclient.

I may be stupid when it comes to reading Python code, but atleast I know that much.
 

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
You can think that if you want, but I actually used common knowledge.
For example, WUPClient uses "from time import sleep". Knowing that time is a library, and sleep is a class, I can conclude that using WUPClient would mean typing "from wupclient import wupclient", as that's the only class made available by wupclient.

I may be stupid when it comes to reading Python code, but atleast I know that much.
Just continue reading and you'll be fine.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
holy shit this is stupid.
python -i wupclient.py to start a prompt
w.<command>(<args>)
if you don't know this you don't know shit about python

Yes, I know that. I can also understand the w.<command> portion, but it's the <args> where I start to get tripped up, as I don't have any documentation to help me out with what should replace what's shown in the wupclient script. (self, handle, device_path, etc...)
So sorry for not being a top of the line programmer. I only recently started trying to learn, especially so when it comes to the Wii U.
 

nexusmtz

Well-Known Member
Member
Joined
Feb 17, 2016
Messages
1,386
Trophies
0
XP
1,425
Country
United States
I guess I'm not as lucky as you then, to be able to wrap my head around it that quickly.
You're trying. That's better than a lot of people.
I'm not aware of any documentation, but I'll get you started. Here are the defs that appear to be for our use rather than the script's:

Methods, i.e. w.something()
Code:
Linux-like
    def cd(self, path):
    def pwd(self):
    def ls(self, path = None, return_data = False):
    def cp(self, filename_in, filename_out):
    def rm(self, filename):
    def mkdir(self, path, flags):
    def rmdir(self, path):
    def chmod(self, filename, flags):
    def stat(self, filename):

    def cpdir(self, srcpath, dstpath):
      Copies a directory/tree on the WiiU itself

    def dl(self, filename, directorypath = None, local_filename = None):
      Download a file from WiiU to pc. If you don't give directorypath, the file comes from the current directory.

    def dldir(self, path):
      Download a directory tree. This one doesn't let you specify where to put it on the pc,
      but it seems to end up in ../ (Haven't looked closely, but that's where I found it.)

    def up(self, local_filename, filename = None):
      Uploads a file from the pc to the WiiU. At its simplest, it'll go from the current directory on the pc to the same named file on the WiiU.

    def dump_syslog(self):
      Probably dumps the syslog
    def fr(self, filename, offset, size):
      File read
    def df(self, filename_out, src, size):
      Looks like a memory dump to a file (on the WiiU)
    def askyesno(self):
      You might use this in a script for confirmation like the rmdir does.

Functions, which don't take the wupclient instance (but use it anyway)
(Sorry, I'm out of time, so someone else will have to help you out from here if you can't tell what they do.)
Code:
def mkdir_p(path):

def mount_sd():
def unmount_sd():

def mount_odd_content():
def unmount_odd_content():

def mount_odd_update():
def unmount_odd_update():

def mount_odd_tickets():
def unmount_odd_tickets():

def install_title(path, installToUsb = 0):
def get_nim_status():
def read_and_print(adr, size):

If you're not into python, self isn't a parameter you give on the command line, so when you use w., skip self. Parameters with = None will default to None.
 
  • Like
Reactions: looseless

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
You're trying. That's better than a lot of people.
I'm not aware of any documentation, but I'll get you started. Here are the defs that appear to be for our use rather than the script's:

Methods, i.e. w.something()
Code:
Linux-like
    def cd(self, path):
    def pwd(self):
    def ls(self, path = None, return_data = False):
    def cp(self, filename_in, filename_out):
    def rm(self, filename):
    def mkdir(self, path, flags):
    def rmdir(self, path):
    def chmod(self, filename, flags):
    def stat(self, filename):

    def cpdir(self, srcpath, dstpath):
      Copies a directory/tree on the WiiU itself

    def dl(self, filename, directorypath = None, local_filename = None):
      Download a file from WiiU to pc. If you don't give directorypath, the file comes from the current directory.

    def dldir(self, path):
      Download a directory tree. This one doesn't let you specify where to put it on the pc,
      but it seems to end up in ../ (Haven't looked closely, but that's where I found it.)

    def up(self, local_filename, filename = None):
      Uploads a file from the pc to the WiiU. At its simplest, it'll go from the current directory on the pc to the same named file on the WiiU.

    def dump_syslog(self):
      Probably dumps the syslog
    def fr(self, filename, offset, size):
      File read
    def df(self, filename_out, src, size):
      Looks like a memory dump to a file (on the WiiU)
    def askyesno(self):
      You might use this in a script for confirmation like the rmdir does.

Functions, which don't take the wupclient instance (but use it anyway)
(Sorry, I'm out of time, so someone else will have to help you out from here if you can't tell what they do.)
Code:
def mkdir_p(path):

def mount_sd():
def unmount_sd():

def mount_odd_content():
def unmount_odd_content():

def mount_odd_update():
def unmount_odd_update():

def mount_odd_tickets():
def unmount_odd_tickets():

def install_title(path, installToUsb = 0):
def get_nim_status():
def read_and_print(adr, size):

If you're not into python, self isn't a parameter you give on the command line, so when you use w., skip self. Parameters with = None will default to None.
please, teaching like this will only help them hurting themselves.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
You're trying. That's better than a lot of people.
I'm not aware of any documentation, but I'll get you started. Here are the defs that appear to be for our use rather than the script's:

Methods, i.e. w.something()
Code:
Linux-like
    def cd(self, path):
    def pwd(self):
    def ls(self, path = None, return_data = False):
    def cp(self, filename_in, filename_out):
    def rm(self, filename):
    def mkdir(self, path, flags):
    def rmdir(self, path):
    def chmod(self, filename, flags):
    def stat(self, filename):

    def cpdir(self, srcpath, dstpath):
      Copies a directory/tree on the WiiU itself

    def dl(self, filename, directorypath = None, local_filename = None):
      Download a file from WiiU to pc. If you don't give directorypath, the file comes from the current directory.

    def dldir(self, path):
      Download a directory tree. This one doesn't let you specify where to put it on the pc,
      but it seems to end up in ../ (Haven't looked closely, but that's where I found it.)

    def up(self, local_filename, filename = None):
      Uploads a file from the pc to the WiiU. At its simplest, it'll go from the current directory on the pc to the same named file on the WiiU.

    def dump_syslog(self):
      Probably dumps the syslog
    def fr(self, filename, offset, size):
      File read
    def df(self, filename_out, src, size):
      Looks like a memory dump to a file (on the WiiU)
    def askyesno(self):
      You might use this in a script for confirmation like the rmdir does.

Functions, which don't take the wupclient instance (but use it anyway)
(Sorry, I'm out of time, so someone else will have to help you out from here if you can't tell what they do.)
Code:
def mkdir_p(path):

def mount_sd():
def unmount_sd():

def mount_odd_content():
def unmount_odd_content():

def mount_odd_update():
def unmount_odd_update():

def mount_odd_tickets():
def unmount_odd_tickets():

def install_title(path, installToUsb = 0):
def get_nim_status():
def read_and_print(adr, size):

If you're not into python, self isn't a parameter you give on the command line, so when you use w., skip self. Parameters with = None will default to None.

Yes, thank you! This is what I've been looking for. This makes everything much more simple to me.

--------------------- MERGED ---------------------------

please, teaching like this will only help them hurting themselves.

How's it gonna hurt me? I'm still gonna keep trying to read through the script, but at least now I have some sort of baseline info.
 

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
How's it gonna hurt me? I'm still gonna keep trying to read through the script, but at least now I have some sort of baseline info.

If you're gonna start learning programming, better start from the basics, take your time. trust me I've seen enough shotgun programming.
 
  • Like
Reactions: Azel

nexusmtz

Well-Known Member
Member
Joined
Feb 17, 2016
Messages
1,386
Trophies
0
XP
1,425
Country
United States
If you're gonna start learning programming, better start from the basics, take your time. trust me I've seen enough shotgun programming.
This is good advice, but try to keep in mind that a person doesn't need to be able to code a grep command in order to be able to leverage the command to find the data they need. Although I understand that the code practically provides its own documentation, that doesn't make it obvious to everyone. Sometimes people just need a little push.

As an example, only yesterday, I pointed out in another thread that the region check for a game could be bypassed by modifying the title's meta.xml with wupclient. There was a person in that thread who simply needed that little push to understand something that I believed was obvious, given that the file says 'region' right inside it. He caught on quickly and was able to run with it, and I'm sure he's off in another thread today helping someone else learn something. ;)
 
  • Like
Reactions: Irastris

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/watch?v=gYzI76fwaM0