Created
January 14, 2018 00:51
-
-
Save mrwulff/31c4344f5148816e5f836cf08dd95701 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os,glob | |
from string import * | |
import search_google.api | |
#from google import search | |
import Tkinter | |
import tkMessageBox | |
import shutil | |
from Tkinter import * | |
from tkSimpleDialog import askstring | |
#from tkSimpleDialog import askquestion | |
import lxml.etree | |
import lxml.builder | |
import xml.etree.ElementTree | |
import xml.etree.ElementTree as ET | |
from urllib import * | |
from PIL import Image, ImageTk | |
from Tkinter import Tk | |
s=0 | |
oculus_dir='C:\Program Files\Oculus/' | |
steamapi='D45ECDEAFB5EBBE8C6DF8C21BC396574' | |
picked='' | |
backup=True | |
master = Tk() | |
name='' | |
picture='' | |
steamid='' | |
games=[] | |
games_data=[] | |
games_json=[] | |
xmls=[] | |
game_file='' | |
current_name='' | |
current_id='' | |
current_steamid='' | |
games=[] | |
cwd='' | |
listbox='' | |
isgame=[] | |
v = IntVar() | |
value='' | |
def importo(): | |
a='' | |
f=games_data[s] | |
f[7]=current_name | |
fi= xmls[s] | |
junk=split(fi,'/') | |
dirr='C:\Program Files\Oculus\Software\Manifests/'+ junk[len(junk)-1] | |
w=open(dirr,'w') | |
for i in range(len(f)): | |
a=a+ f[i]+'"' | |
a=a[:len(a)-1] | |
w.write(a) | |
def save(f,path,cname): | |
exists=False | |
try: | |
sfile=open(path,'r') | |
exists=True | |
return | |
except: | |
'' | |
#b=raw_input("OVERWRITE? "+cname) | |
b='' | |
if b=='': | |
sfile=open(path,'w') | |
E = lxml.builder.ElementMaker() | |
ROOT = E.root | |
DOC = E.doc | |
FIELD1 = E.exe | |
FIELD2 = E.fileDir | |
FIELD3 = E.steamid | |
FIELD4 = E.images | |
FIELD5 = E.isgame | |
the_doc = ROOT( | |
DOC( | |
FIELD1(name=cname), | |
FIELD2(name=path), | |
FIELD3(name=''), | |
FIELD4(name=''), | |
FIELD5(name='no') | |
) | |
) | |
a= lxml.etree.tostring(the_doc, pretty_print=True) | |
sfile.write(a) | |
sfile.close | |
def savefile(): | |
global current_id | |
global current_name | |
global s | |
global v | |
global value | |
print v | |
print value | |
print current_id,'++ID++' | |
tree = ET.parse(game_file) | |
for rank in tree.iter('exe'): | |
rank.text = str('') | |
rank.set('name', current_name) | |
'' | |
for rank in tree.iter('steamid'): | |
rank.text = str('') | |
rank.set('name', current_id) | |
'' | |
for rank in tree.iter('isgame'): | |
rank.text = str('') | |
rank.set('name', value) | |
'' | |
tree.write(game_file) | |
print current_id,current_name, 'current name and id' | |
current_id='' | |
def searchg(): | |
global current_id | |
flag=0 | |
for url in search(games_data[s][7], stop=10): | |
if 'steam' in url and flag==0: | |
surl=split(url,'/') | |
for i in range(len(surl)): | |
if 'app' in surl[i] and flag==0: | |
steamid= surl[i+1] | |
flag=1 | |
#results.download_links('downloads') | |
try: | |
current_id=steamid | |
except: | |
print 'cant find id' | |
#searchg(30) | |
savefile() | |
'oop' | |
def changename(): | |
global current_name | |
current_name = askstring("Input", "Change Name") | |
#return answer | |
savefile() | |
def changeid(): | |
global current_id | |
current_id = askstring("Input", "Change ID") | |
print current_id,'cuurrentid' | |
savefile() | |
def one(): | |
global value | |
global s | |
value='yes' | |
listbox.itemconfig(s, {'bg':'white'}) | |
def two(): | |
global value | |
global s | |
value='no' | |
listbox.itemconfig(s, {'bg':'red'}) | |
def CurSelet(event): | |
global s | |
global current_name | |
global current_id | |
global current_steamid | |
global game_file | |
global v | |
global value | |
widget = event.widget | |
selection=widget.curselection() | |
s=(selection[0]) | |
s=int(s) | |
picked = widget.get(selection[0]) | |
game_file=games_json[s] | |
e = xml.etree.ElementTree.parse(games_json[s]).getroot() | |
#print e | |
ef= e[0][0].attrib | |
current_name= ef['name'] | |
ef= e[0][1].attrib | |
current_fdir= ef['name'] | |
ef= e[0][2].attrib | |
current_steamid= ef['name'] | |
ef= e[0][3].attrib | |
current_images= ef['name'] | |
p = Canvas(master, width=700, height=900) | |
p.pack() | |
p.create_rectangle(10,10,330,50) | |
p.place(x=150,y=000) | |
w = Label(master, text=picked) | |
w.pack() | |
w.place(x=230,y=100) | |
w = Label(master, text='Occulus Name') | |
w.pack() | |
w.place(x=130,y=100) | |
w = Label(master, text=current_name) | |
w.pack() | |
w.place(x=230,y=130) | |
b = Button(master, text="Change Name", command=changename) | |
b.pack() | |
b.place(x=130,y=130) | |
w = Label(master, text=current_steamid) | |
w.pack() | |
w.place(x=230,y=164) | |
b1 = Button(master, text="Change Steam ID", command=changeid) | |
#b1 = Button(master, text="Change Steam ID", command=changeid(game_file,e)) | |
b1.pack() | |
b1.place(x=130,y=160) | |
w = Label(master, text=current_images) | |
w.pack() | |
w.place(x=230,y=198) | |
b2 = Button(master, text="Change Pic", command=changename) | |
b2.pack() | |
b2.place(x=130,y=190) | |
#w = Label(master, text=current_steamid) | |
#w.pack() | |
#w.place(x=230,y=100) | |
b3 = Button(master, text="Lookup ID", command=searchg) | |
b3.pack() | |
b3.place(x=130,y=220) | |
b4 = Button(master, text="Save config", command=savefile) | |
b4.pack() | |
b4.place(x=130,y=250) | |
b4 = Button(master, text="Import to Occulus", command=importo) | |
b4.pack() | |
b4.place(x=130,y=280) | |
b5 = Button(master, text="Download Pictures", command=dlpics) | |
b5.pack() | |
b5.place(x=130,y=310) | |
b5 = Button(master, text="Overwrite Pictures", command=opics) | |
b5.pack() | |
b5.place(x=130,y=340) | |
b6=Radiobutton(master, text="Show", variable=v,command=one, value=1,) | |
b6.pack(anchor=W) | |
b7=Radiobutton(master, text="Hide", variable=v,command=two,value=2) | |
b7.pack(anchor=W) | |
b6.place(x=130,y=370) | |
b7.place(x=130,y=390) | |
try: | |
image = Image.open(cwd+'/pics/'+current_steamid+'.jpg') | |
photo = ImageTk.PhotoImage(image) | |
label = Label(image=photo) | |
label.image = photo # keep a reference! | |
label.pack() | |
label.place(x=500,y=500) | |
except: | |
print 'cant find photos' | |
def dlpics(): | |
url ='http://store.steampowered.com/app/'+current_steamid | |
pic= 'http://cdn.akamai.steamstatic.com/steam/apps/'+current_steamid+'/header.jpg' | |
try: | |
pi=cwd+'/pics/'+current_steamid+'.jpg' | |
pio=open(pi,'r') | |
except: | |
urlretrieve(pic,cwd+'/pics/'+current_steamid+'.jpg') | |
print 'done downloading' | |
landscape='cover_landscape_image.jpg' | |
cover_squuare='cover_square_image.jpg' | |
icon_image='icon_image.jpg' | |
logo_trans='logo_transparent_image.png' | |
orig='original.jpg' | |
small_landscape='small_landscape_image.jpg' | |
def opics(): | |
#oculus_dir='C:\Program Files\Oculus\Software\Software\StoreAssets\C_Users_kevin_Downloads_RMVR_RickAndMortyVR_assets | |
a=oculus_dir | |
b='Software\Software\StoreAssets/' | |
c= games_data[s][3] | |
d='_assets' | |
imdir= a+b+c+d | |
'' | |
os.chdir(imdir) | |
newpic=cwd+'/pics/'+current_steamid+'.jpg' | |
print newpic | |
landscape='cover_landscape_image.jpg' | |
cover_squuare='cover_square_image.jpg' | |
icon_image='icon_image.jpg' | |
logo_trans='logo_transparent_image.png' | |
orig='original.jpg' | |
small_landscape='small_landscape_image.jpg' | |
pics=[] | |
pics.append(landscape) | |
pics.append(cover_squuare) | |
pics.append(icon_image) | |
pics.append(logo_trans) | |
pics.append(orig) | |
pics.append(small_landscape) | |
for i in range(len(pics)): | |
shutil.copy(newpic, pics[i]) | |
def findpics(game): | |
#search_google -s cx="013228151091691353158:u9tmqgz3wy4" | |
#search_google -s build_developerKey="AIzaSyASXnwW10UZ8eTWknwtncug1x1bqaMd_OA" | |
'poop' | |
def make_grid(): | |
global listbox | |
global picked | |
global games | |
sizex = 1200 | |
sizey = 800 | |
posx = 40 | |
posy = 20 | |
master.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy)) | |
listbox = Listbox(master,height=len(games)) | |
listbox.pack() | |
listbox.bind('<<ListboxSelect>>',CurSelet,master) | |
#listbox.insert(END, "a list entry") | |
listbox.place(x=0,y=0) | |
i=0 | |
for item in games: | |
listbox.insert(END, item) | |
if isgame[i]=='no': | |
listbox.itemconfig(i, {'bg':'red'}) | |
i=i+1 | |
w = Canvas(master, width=200, height=100) | |
w.pack() | |
mainloop() | |
def lookup_if_game(f): | |
global isgame | |
print f | |
e = xml.etree.ElementTree.parse(f).getroot() | |
ef= e[0][4].attrib | |
ef= ef['name'] | |
print ef | |
isgame.append(ef) | |
def main(redo): | |
global games | |
global xmls | |
global cwd | |
root=Tk() | |
cwd=os.getcwd() | |
print cwd | |
files=[] | |
di='C:\Program Files\Oculus\Software\Manifests/' | |
os.chdir(di) | |
for file in glob.glob("*.*"): | |
files.append(file) | |
for i in range(len(files)): | |
full_file=di+files[i] | |
backup_file=di+'/backup/'+files[i] | |
b=open(full_file,'r') | |
if backup==True: | |
shutil.copyfile(full_file, backup_file) | |
for line in b.readlines(): | |
if 'displayName' in line: | |
root.withdraw() | |
xmldir=cwd+'/ids/'+files[i] | |
xmls.append(xmldir) | |
#s=open(xmldir,'w') | |
games_json.append(xmldir) | |
junk=split(line,'"') | |
games_data.append(junk) | |
findpics(junk[7]) | |
games.append(junk[7]) | |
#print files[i],xmldir,junk[7],'woop',xmldir | |
#xx=raw_input('') | |
if redo==True: | |
save(files[i],xmldir,junk[7]) | |
lookup_if_game(xmldir) | |
make_grid() | |
main(True) | |
'''<script> | |
(function() { | |
var cx = '013228151091691353158:u9tmqgz3wy4'; | |
var gcse = document.createElement('script'); | |
gcse.type = 'text/javascript'; | |
gcse.async = true; | |
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx; | |
var s = document.getElementsByTagName('script')[0]; | |
s.parentNode.insertBefore(gcse, s); | |
})(); | |
</script> | |
<gcse:search></gcse:search> | |
''' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment