-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathchangename.py
40 lines (37 loc) · 1.19 KB
/
changename.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/python3
import datetime
import sys
import converter
import rom
import usb
def main(argv):
if len(argv) != 2:
print("MyOwnLeaptop Name Changer...")
print("Syntax: python3 namechanger.py <name> <audiofile>")
return
name = argv[0]
audiofile = argv[1]
print("Checking for necessary files...")
converter.download_converter()
print("Connecting to device. Make sure it's plugged in + turned on!")
usbclient = usb.client()
print("Backing up ROM...")
myrom = rom.Rom(usbclient.dump())
bakfile = "backup-{}.rom".format(datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))
with open(bakfile, 'wb') as f:
f.write(myrom.rom)
print("Wrote current ROM to file {}".format(bakfile))
print("Converting audio file...")
converter.convert_audiofile(audiofile)
if len(name) > 8:
print("Sorry, names >8 characters are not supported yet!")
return
print("Changing name to {}".format(name))
with open('tmp.wav.adp', 'rb') as f:
soundcontents = f.read()
myrom.set_name_details(bytes(name.upper().encode('UTF-8')), soundcontents)
print("Writing rom to Leaptop...")
usbclient.upload(myrom.rom)
print("Success!")
if __name__ == "__main__":
main(sys.argv[1:])