def update_fetch(): text=[] text.append("Checking web for updates...") # disk_files=[] web_src=[] disk_dest=[] update_path="http://www.gpvdm.com/update_windows/"+ver()+"/" lines=get_data_from_web(update_path+"list.dat") print("Got file list") lines=lines.split('\n') files=[] md5=[] web_md5=[] for i in range(0,len(lines)): if lines[i].count(" ")!=0: m,f=lines[i].split(" ") f=f[2:].split("/") md5.append(m) files.append(f) for i in range(0,len(files)): root=files[i][0] if root=="images" or root=="solvers" or root=="gpvdm_core.exe" or root=="device_lib" or root=="sim.gpvdm" or root=="lang" or root=="materials" or root=="light": md5_web=md5[i] md5_disk="none" disk_path=os.path.join(get_share_path(),"/".join(files[i])) web_path=update_path+"/".join(files[i]) if os.path.isfile(disk_path): md5_disk=hashlib.md5(open(disk_path,'rb').read()).hexdigest() if md5_web!=md5_disk: web_src.append(web_path) disk_dest.append(disk_path) web_md5.append(md5_web) for i in range(0,len(web_src)): text.append(web_src[i]+" "+disk_dest[i]) a=get_data_from_web(web_src[i]) l=len(a) if l>100: l=100; if a[:l].count("403 Forbidden")!=0: text.append("Access to file "+web_src[i]+" forbidden") else: web_hash=hashlib.md5(a).hexdigest() list_hash=web_md5[i] if web_hash==list_hash: text.append("updating file "+disk_dest[i]) if running_on_linux()==False: f=open(disk_dest[i], mode='wb') lines = f.write(a) f.close() else: text.append("Checksum error "+disk_dest[i]) return text
def tx_error(self,n): page="http://www.gpvdm.com/bug.html?ver_core="+ver_core()+"error="+quote(self.error) message=get_data_from_web(page) print("from web:",message) if message.startswith("ok")==True: self.reported.emit(True) else: self.reported.emit(False)
def tx_error(self,n): page="http://www.gpvdm.com/bug.html?ver_core="+ver_core()+"."+ver_subver()+"error="+quote(self.error) message=get_data_from_web(page) print("from web:",message) if message.startswith("ok")==True: self.reported.emit(True) else: self.reported.emit(False)
def get_from_web(self,url): page="http://www.gpvdm.com/download_windows/update.php?ver_core="+ver_core()+"."+ver_subver()+"&uid="+uid_get()+"&os="+platform.platform()+"&opengl="+is_open_gl_working()+"&lang="+get_full_language()+"&bugs="+bugs_to_url()+"&disk_speed="+get_disk_speed() message=get_data_from_web(page) message=message.split("\n") #print(message) self.text="" if message[0].startswith("update"): token,ver=message[0].split("#") self.text="Version "+ver+" of opvdm is now available." self.got_data.emit(self.text)
def get_from_web(self,url): page="http://www.gpvdm.com/download_windows/update.php?ver_core="+ver_core()+"&ver_mat="+ver_mat()+"&os="+platform.platform()+"&opengl="+is_open_gl_working() message=get_data_from_web(page) message=message.split("\n") print(message) self.text="" if message[0].startswith("update"): token,ver=message[0].split("#") self.text="Version "+ver+" of opvdm is now available." self.got_data.emit(self.text)