commit
						431e91dfaa
					
				
							
								
								
									
										183
									
								
								Changer.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										183
									
								
								Changer.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,183 @@
 | 
				
			|||||||
 | 
					import wx
 | 
				
			||||||
 | 
					from glob import glob
 | 
				
			||||||
 | 
					from os import remove, getcwd, mkdir
 | 
				
			||||||
 | 
					from os.path import isfile, getsize, isdir
 | 
				
			||||||
 | 
					from subprocess import Popen, CREATE_NEW_CONSOLE, DETACHED_PROCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ids = {}
 | 
				
			||||||
 | 
					CONFIG = ".config"
 | 
				
			||||||
 | 
					HISTORY = ".history"
 | 
				
			||||||
 | 
					DESIGN = {
 | 
				
			||||||
 | 
					    "Interval Text":        (10, 13),
 | 
				
			||||||
 | 
					    "Interval":             (10, 30),
 | 
				
			||||||
 | 
					    "Save":                 (11, 63),
 | 
				
			||||||
 | 
					    "Hidden":               (10, 93),
 | 
				
			||||||
 | 
					    "Safe Mode":     (10, 123),
 | 
				
			||||||
 | 
					    "Clear Cache":          (10, 150),
 | 
				
			||||||
 | 
					    "Cache Information":    (120,153),
 | 
				
			||||||
 | 
					    "Clear History":        (10, 180),
 | 
				
			||||||
 | 
					    "History Information":  (120,183),
 | 
				
			||||||
 | 
					    "Refresh":              (10, 210),
 | 
				
			||||||
 | 
					    "Start":                (10, 240)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def integrity_check():
 | 
				
			||||||
 | 
					    for i in [1]:
 | 
				
			||||||
 | 
					        if not isfile(CONFIG):
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					        elif len(open(CONFIG, "r").read().split()) < 4:
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					        open(CONFIG, "w").write("600\n1\n0\n1")
 | 
				
			||||||
 | 
					        print(CONFIG + " is missing")
 | 
				
			||||||
 | 
					        print("generating " + CONFIG + " with default value of\n   Interval = 600 seconds\n   Save Wallpapers = True\n   Start Hidden = False\n   Approximate Time = True")
 | 
				
			||||||
 | 
					    if not isfile(HISTORY):
 | 
				
			||||||
 | 
					        open(HISTORY, "w").write("")
 | 
				
			||||||
 | 
					        print(HISTORY + " is missing")
 | 
				
			||||||
 | 
					        print("generating " + HISTORY)
 | 
				
			||||||
 | 
					    if not isdir(".\\Images"):
 | 
				
			||||||
 | 
					        mkdir(".\\Images")
 | 
				
			||||||
 | 
					        print(getcwd() + "\\Images is missing")
 | 
				
			||||||
 | 
					        print("generating " + getcwd() + ".\\Images")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ChangerUI(wx.Frame):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, *args, **kw):
 | 
				
			||||||
 | 
					        super(ChangerUI, self).__init__(*args, **kw)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.InitUI()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def InitUI(self):
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        self.itxt = wx.StaticText(self, pos=DESIGN["Interval Text"], label="Interval:")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.Intl = wx.TextCtrl(self, pos=DESIGN["Interval"], style=wx.TE_PROCESS_ENTER, size=(100, 24))
 | 
				
			||||||
 | 
					        self.Intl.SetValue(open(CONFIG, "r").read().split()[0])
 | 
				
			||||||
 | 
					        ids[self.Intl.GetId()] = "Interval"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.Save = wx.CheckBox(self, pos=DESIGN["Save"], label="Save Wallpapers")
 | 
				
			||||||
 | 
					        ids[self.Save.GetId()] = "Save"
 | 
				
			||||||
 | 
					        self.Save.SetValue(int(open(CONFIG, "r").read().split()[1]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.Hd = wx.CheckBox(self, pos=DESIGN["Hidden"], label="Start Hidden")
 | 
				
			||||||
 | 
					        ids[self.Hd.GetId()] = "Hidden"
 | 
				
			||||||
 | 
					        self.Hd.SetValue(int(open(CONFIG, "r").read().split()[2]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.Ap = wx.CheckBox(self, pos=DESIGN["Safe Mode"], label="Safe Mode")
 | 
				
			||||||
 | 
					        ids[self.Ap.GetId()] = "Safe"
 | 
				
			||||||
 | 
					        self.Ap.SetValue(int(open(CONFIG, "r").read().split()[3]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.cl = wx.Button(self, label="Clear Cache", pos=DESIGN["Clear Cache"], size=(100, 28))
 | 
				
			||||||
 | 
					        ids[self.cl.GetId()] = "Clear Cache"
 | 
				
			||||||
 | 
					        self.clh = wx.Button(self, label="Clear History", pos=DESIGN["Clear History"], size=(100, 28))
 | 
				
			||||||
 | 
					        ids[self.clh.GetId()] = "Clear History"
 | 
				
			||||||
 | 
					        self.st = wx.Button(self, label="Start", pos=DESIGN["Start"], size=(100, 28))
 | 
				
			||||||
 | 
					        ids[self.st.GetId()] = "Start"
 | 
				
			||||||
 | 
					        self.rf = wx.Button(self, label="Refresh", pos=DESIGN["Refresh"], size=(100, 28))
 | 
				
			||||||
 | 
					        ids[self.rf.GetId()] = "Refresh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.cinf = wx.StaticText( self,
 | 
				
			||||||
 | 
					                                    label= str(int(sum([getsize(i) for i in glob("./Images/*.*")]) / 1024 / 10.24) / 100) + " MB, " + str(len(glob("./Images/*.*"))) + " Files", 
 | 
				
			||||||
 | 
					                                    pos=DESIGN["Cache Information"])
 | 
				
			||||||
 | 
					        ids[self.cinf.GetId()] = "Cache Information"
 | 
				
			||||||
 | 
					        self.hinf = wx.StaticText( self,
 | 
				
			||||||
 | 
					                                    label= str(len(open(HISTORY, "r").read().split())) + " Entries", 
 | 
				
			||||||
 | 
					                                    pos=DESIGN["History Information"])
 | 
				
			||||||
 | 
					        ids[self.hinf.GetId()] = "History Information"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        self.Bind(wx.EVT_TEXT_ENTER, self.OnEnter)
 | 
				
			||||||
 | 
					        self.Bind(wx.EVT_BUTTON, self.OnPress)
 | 
				
			||||||
 | 
					        self.Bind(wx.EVT_CHECKBOX, self.OnPress)
 | 
				
			||||||
 | 
					        self.Bind(wx.EVT_FSWATCHER, self.DirChanged)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.SetSize((self.cinf.GetSize().x + 140, DESIGN["Start"][1] + 70))
 | 
				
			||||||
 | 
					        self.SetTitle('Changer')
 | 
				
			||||||
 | 
					        self.Centre()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def DirChanged(self, e):
 | 
				
			||||||
 | 
					        self.cinf.SetLabel(str(int(sum([getsize(i) for i in glob("./Images/*.*")]) / 1024 / 10.24) / 100) + " MB, " + str(len(glob("./Images/*.*"))) + " Files")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def OnEnter(self, e):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Interval":
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                float(self.Intl.GetValue())
 | 
				
			||||||
 | 
					                fr = open(CONFIG, "r")
 | 
				
			||||||
 | 
					                c = fr.read().split()
 | 
				
			||||||
 | 
					                fr.close()
 | 
				
			||||||
 | 
					                fw = open(CONFIG, "w")
 | 
				
			||||||
 | 
					                c[0] = self.Intl.GetValue()
 | 
				
			||||||
 | 
					                fw.write("\n".join(c))
 | 
				
			||||||
 | 
					                fw.close()
 | 
				
			||||||
 | 
					            except:
 | 
				
			||||||
 | 
					                print("Invalid Value!")
 | 
				
			||||||
 | 
					                self.Intl.SetValue(open(CONFIG, "r").read().split()[0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def OnPress(self, e):
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Clear Cache":
 | 
				
			||||||
 | 
					            for i in [i for i in glob("./Images/*.*") if i.split(".")[-1] in ["jpg", "jpeg", "png"]]:
 | 
				
			||||||
 | 
					                remove(i)
 | 
				
			||||||
 | 
					            self.cinf.SetLabel(str(int(sum([getsize(i) for i in glob("./Images/*.*")]) / 1024 / 10.24) / 100) + " MB, " + str(len(glob("./Images/*.*"))) + " Files")
 | 
				
			||||||
 | 
					            self.SetSize((self.cinf.GetSize().x + 140, DESIGN["Start"][1] + 70))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Clear History":
 | 
				
			||||||
 | 
					            open(".history", "w").write("")
 | 
				
			||||||
 | 
					            self.hinf.SetLabel(str(len(open(HISTORY, "r").read().split())) + " Entries")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Save":
 | 
				
			||||||
 | 
					            fr = open(CONFIG, "r")
 | 
				
			||||||
 | 
					            c = fr.read().split()
 | 
				
			||||||
 | 
					            fr.close()
 | 
				
			||||||
 | 
					            fw = open(CONFIG, "w")
 | 
				
			||||||
 | 
					            c[1] = str(int(self.Save.GetValue()))
 | 
				
			||||||
 | 
					            fw.write("\n".join(c))
 | 
				
			||||||
 | 
					            fw.close()
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Hidden":
 | 
				
			||||||
 | 
					            fr = open(CONFIG, "r")
 | 
				
			||||||
 | 
					            c = fr.read().split()
 | 
				
			||||||
 | 
					            fr.close()
 | 
				
			||||||
 | 
					            fw = open(CONFIG, "w")
 | 
				
			||||||
 | 
					            c[2] = str(int(self.Hd.GetValue()))
 | 
				
			||||||
 | 
					            fw.write("\n".join(c))
 | 
				
			||||||
 | 
					            fw.close()
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Safe":
 | 
				
			||||||
 | 
					            fr = open(CONFIG, "r")
 | 
				
			||||||
 | 
					            c = fr.read().split()
 | 
				
			||||||
 | 
					            fr.close()
 | 
				
			||||||
 | 
					            fw = open(CONFIG, "w")
 | 
				
			||||||
 | 
					            c[3] = str(int(self.Ap.GetValue()))
 | 
				
			||||||
 | 
					            fw.write("\n".join(c))
 | 
				
			||||||
 | 
					            fw.close()
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Start":
 | 
				
			||||||
 | 
					            if int(open(CONFIG, "r").read().split()[2]):
 | 
				
			||||||
 | 
					                Popen(["wrapper.exe"], shell=True, creationflags=CREATE_NEW_CONSOLE)
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                Popen(["wrapper.exe"], shell=True, creationflags=DETACHED_PROCESS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ids[e.GetId()] == "Refresh":
 | 
				
			||||||
 | 
					            integrity_check()
 | 
				
			||||||
 | 
					            self.hinf.SetLabel(str(len(open(HISTORY, "r").read().split())) + " Entries")
 | 
				
			||||||
 | 
					            self.cinf.SetLabel(str(int(sum([getsize(i) for i in glob("./Images/*.*")]) / 1024 / 10.24) / 100) + " MB, " + str(len(glob("./Images/*.*"))) + " Files")
 | 
				
			||||||
 | 
					            self.SetSize((self.cinf.GetSize().x + 140, DESIGN["Start"][1] + 70))
 | 
				
			||||||
 | 
					            self.Intl.SetValue(open(CONFIG, "r").read().split()[0])
 | 
				
			||||||
 | 
					            self.Save.SetValue(int(open(CONFIG, "r").read().split()[1]))
 | 
				
			||||||
 | 
					            self.Hd.SetValue(int(open(CONFIG, "r").read().split()[2]))
 | 
				
			||||||
 | 
					            self.Ap.SetValue(int(open(CONFIG, "r").read().split()[3]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    integrity_check()
 | 
				
			||||||
 | 
					    app = wx.App()
 | 
				
			||||||
 | 
					    cu = ChangerUI(None)
 | 
				
			||||||
 | 
					    cu.Show()
 | 
				
			||||||
 | 
					    app.MainLoop()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    main() 
 | 
				
			||||||
							
								
								
									
										118
									
								
								backend.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								backend.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,118 @@
 | 
				
			|||||||
 | 
					from ctypes import windll
 | 
				
			||||||
 | 
					from praw import Reddit
 | 
				
			||||||
 | 
					from glob import glob
 | 
				
			||||||
 | 
					from time import sleep
 | 
				
			||||||
 | 
					from time import time
 | 
				
			||||||
 | 
					from urllib.request import urlretrieve
 | 
				
			||||||
 | 
					from os import getcwd, remove, system
 | 
				
			||||||
 | 
					import progressbar
 | 
				
			||||||
 | 
					import urllib.request
 | 
				
			||||||
 | 
					from imgur_downloader import ImgurDownloader
 | 
				
			||||||
 | 
					import _thread
 | 
				
			||||||
 | 
					from subprocess import Popen, CREATE_NEW_CONSOLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG = ".config"
 | 
				
			||||||
 | 
					CLIENT = ".client"
 | 
				
			||||||
 | 
					intrvl = float(open(CONFIG, "r").read().split()[0])
 | 
				
			||||||
 | 
					imgpath = ""
 | 
				
			||||||
 | 
					start = time()
 | 
				
			||||||
 | 
					client = open(CLIENT, "r").read().split()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class NoImage(Exception):
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					reddit = Reddit(client_id=client[0],
 | 
				
			||||||
 | 
					                client_secret=client[1],
 | 
				
			||||||
 | 
					                user_agent='Wallpaper changer by u/Surferlul')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MyProgressBar():
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        self.pbar = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __call__(self, block_num, block_size, total_size):
 | 
				
			||||||
 | 
					        if not self.pbar:
 | 
				
			||||||
 | 
					            self.pbar=progressbar.ProgressBar(maxval=total_size)
 | 
				
			||||||
 | 
					            self.pbar.start()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        downloaded = block_num * block_size
 | 
				
			||||||
 | 
					        if downloaded < total_size:
 | 
				
			||||||
 | 
					            self.pbar.update(downloaded)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            self.pbar.finish()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def del_file(path, Seconds=10):
 | 
				
			||||||
 | 
					    Popen("powershell.exe Sleep(" + str(Seconds) + "); Remove-Item .\\Images\\" + path, shell=True, creationflags=CREATE_NEW_CONSOLE)
 | 
				
			||||||
 | 
					    # global intrvl
 | 
				
			||||||
 | 
					    # if int(open(CONFIG, "r").read().split()[2]):
 | 
				
			||||||
 | 
					        # _thread.start_new_thread ( system, tuple(["powershell -WindowStyle Hidden \"Sleep(" + str(Seconds) + "); Remove-Item .\\Images\\" + path + "\""]))
 | 
				
			||||||
 | 
					    # else:
 | 
				
			||||||
 | 
					        # if int(open(CONFIG, "r").read().split()[3]):
 | 
				
			||||||
 | 
					            # if intrvl < 3:
 | 
				
			||||||
 | 
					                # intrvl = 3
 | 
				
			||||||
 | 
					        # else:
 | 
				
			||||||
 | 
					            # _thread.start_new_thread ( system, tuple(["start powershell -WindowStyle Hidden \"Sleep(" + str(Seconds) + "); Remove-Item .\\Images\\" + path  + "\""]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					posts = open(".history", "r").read()
 | 
				
			||||||
 | 
					for i in reddit.subreddit("wallpaper").hot(limit = 1000):
 | 
				
			||||||
 | 
					    if i.url not in posts:
 | 
				
			||||||
 | 
					        submission = i
 | 
				
			||||||
 | 
					        break
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					open(".history", "a").write(submission.url + "\n")
 | 
				
			||||||
 | 
					try:
 | 
				
			||||||
 | 
					    if "imgur" in submission.url:
 | 
				
			||||||
 | 
					        if submission.url.split("/")[-1].split(".")[-1] not in ["jpg", "jpeg", "png"]:
 | 
				
			||||||
 | 
					            print("Downoading", submission.url)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            print("Downoading", submission.url, "as", submission.url.split("\\")[-1])
 | 
				
			||||||
 | 
					        ImgurDownloader(
 | 
				
			||||||
 | 
					        submission.url,
 | 
				
			||||||
 | 
					        "./Images/",
 | 
				
			||||||
 | 
					        file_name=submission.url.split("/")[-1]
 | 
				
			||||||
 | 
					            if submission.url.split("/")[-1].split(".")[-1] not in ["jpg", "jpeg", "png"] 
 | 
				
			||||||
 | 
					            else submission.url.split("/")[-1].split(".")[0]
 | 
				
			||||||
 | 
					        ).save_images()
 | 
				
			||||||
 | 
					        if submission.url.split("/")[-1].split(".")[-1] not in ["jpg", "jpeg", "png"]:
 | 
				
			||||||
 | 
					            windll.user32.SystemParametersInfoW(20, 0, getcwd() + "\\" + glob("./Images/" + submission.url.split("/")[-1] + ".*")[0], 0)
 | 
				
			||||||
 | 
					            if not int(open(CONFIG, "r").read().split()[1]):
 | 
				
			||||||
 | 
					                del_file(glob(submission.url.split("/")[-1] + ".*")[0])
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            windll.user32.SystemParametersInfoW(20, 0, getcwd() + "\\Images\\" + submission.url.split("/")[-1] , 0)
 | 
				
			||||||
 | 
					            if not int(open(CONFIG, "r").read().split()[1]):
 | 
				
			||||||
 | 
					                del_file(submission.url.split("/")[-1])
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        if submission.url.split("/")[-1].split(".")[-1] not in ["jpg", "jpeg", "png"]:
 | 
				
			||||||
 | 
					            raise NoImage
 | 
				
			||||||
 | 
					        imgpath = "Images\\" + submission.url.split("/")[-1]
 | 
				
			||||||
 | 
					        print("Downoading", submission.url, "as", submission.url.split("\\")[-1])
 | 
				
			||||||
 | 
					        urlretrieve(submission.url, imgpath, MyProgressBar())
 | 
				
			||||||
 | 
					        windll.user32.SystemParametersInfoW(20, 0, getcwd() + "\\" + imgpath, 0)
 | 
				
			||||||
 | 
					        if not int(open(CONFIG, "r").read().split()[1]):
 | 
				
			||||||
 | 
					            del_file(submission.url.split("/")[-1])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    end = time()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    intrvl += start - end
 | 
				
			||||||
 | 
					    if intrvl >= 0:
 | 
				
			||||||
 | 
					        pbar = progressbar.ProgressBar(maxval=intrvl)
 | 
				
			||||||
 | 
					        pbar.start()
 | 
				
			||||||
 | 
					        if intrvl < 10:
 | 
				
			||||||
 | 
					            for i in range(1, int(intrvl * 10) + 1):
 | 
				
			||||||
 | 
					                sleep(intrvl / int(intrvl * 10))
 | 
				
			||||||
 | 
					                try:
 | 
				
			||||||
 | 
					                    pbar.update(intrvl / int(intrvl * 10) * i)
 | 
				
			||||||
 | 
					                except:
 | 
				
			||||||
 | 
					                    pbar.update(int(intrvl))
 | 
				
			||||||
 | 
					                    print("test")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            for i in range(1, 101):
 | 
				
			||||||
 | 
					                sleep(intrvl / 100)
 | 
				
			||||||
 | 
					                pbar.update(intrvl / 100 * i)
 | 
				
			||||||
 | 
					        pbar.finish()
 | 
				
			||||||
 | 
					    elif int(open(CONFIG, "r").read().split()[3]):
 | 
				
			||||||
 | 
					        intrvl -= 2 * (start - end)
 | 
				
			||||||
 | 
					        print("Interval was rounded up to " + str(round(intrvl * 100) / 100) + "s because the download needed longer than the interval.")
 | 
				
			||||||
 | 
					except NoImage:
 | 
				
			||||||
 | 
					    print("Error: Url doesn't point to an Image")
 | 
				
			||||||
 | 
					except Exception as E:
 | 
				
			||||||
 | 
					    print("Error: " + type(E).__name__)
 | 
				
			||||||
							
								
								
									
										15
									
								
								build.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								build.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					from subprocess import call
 | 
				
			||||||
 | 
					from shutil import rmtree
 | 
				
			||||||
 | 
					from os.path import isdir
 | 
				
			||||||
 | 
					if isdir(".\\build"):  
 | 
				
			||||||
 | 
					    rmtree(".\\build")
 | 
				
			||||||
 | 
					call("python3 setup.py build", shell=True)
 | 
				
			||||||
 | 
					print(
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					________________________________
 | 
				
			||||||
 | 
					BUILD FINISHED
 | 
				
			||||||
 | 
					¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					input()
 | 
				
			||||||
							
								
								
									
										21
									
								
								setup.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								setup.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					from cx_Freeze import setup, Executable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					base = None    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					executables = [Executable("backend.py", base=base), Executable("wrapper.py", base=base), Executable("Changer.py", base=base)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					packages = ["idna", "os", "ctypes", "praw", "glob", "time", "urllib", "progressbar", "imgur_downloader", "wx", "subprocess", "_thread"]
 | 
				
			||||||
 | 
					options = {
 | 
				
			||||||
 | 
					    'build_exe': {
 | 
				
			||||||
 | 
					        'build_exe': '.\\build',
 | 
				
			||||||
 | 
					        'packages':packages,
 | 
				
			||||||
 | 
					    },    
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup(
 | 
				
			||||||
 | 
					    name = "Changer",
 | 
				
			||||||
 | 
					    options = options,
 | 
				
			||||||
 | 
					    version = "1.1",
 | 
				
			||||||
 | 
					    description = 'Wallpaper changer by u/Surferlul',
 | 
				
			||||||
 | 
					    executables = executables
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										40
									
								
								wrapper.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								wrapper.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					from os import mkdir, getcwd
 | 
				
			||||||
 | 
					from os.path import isfile, isdir
 | 
				
			||||||
 | 
					from subprocess import Popen, call
 | 
				
			||||||
 | 
					from time import sleep
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG = ".config"
 | 
				
			||||||
 | 
					HISTORY = ".history"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def integrity_check():
 | 
				
			||||||
 | 
					    for i in [1]:
 | 
				
			||||||
 | 
					        if not isfile(CONFIG):
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					        elif len(open(CONFIG, "r").read().split()) < 4:
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					        open(CONFIG, "w").write("600\n1\n0\n1")
 | 
				
			||||||
 | 
					        print(CONFIG + " is missing")
 | 
				
			||||||
 | 
					        print("generating " + CONFIG + " with default value of\n   Interval = 600 seconds\n   Save Wallpapers = True\n   Start Hidden = False\n   Approximate Time = True")
 | 
				
			||||||
 | 
					    if not isfile(HISTORY):
 | 
				
			||||||
 | 
					        open(HISTORY, "w").write("")
 | 
				
			||||||
 | 
					        print(HISTORY + " is missing")
 | 
				
			||||||
 | 
					        print("generating " + HISTORY)
 | 
				
			||||||
 | 
					    if not isdir(".\\Images"):
 | 
				
			||||||
 | 
					        mkdir(".\\Images")
 | 
				
			||||||
 | 
					        print(getcwd() + "\\Images is missing")
 | 
				
			||||||
 | 
					        print("generating " + getcwd() + ".\\Images")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while True:
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        integrity_check()
 | 
				
			||||||
 | 
					        if int(open(CONFIG, "r").read().split()[3]):
 | 
				
			||||||
 | 
					            call(["backend.exe"], shell=True)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            Popen(["backend.exe"], shell=True)
 | 
				
			||||||
 | 
					            sleep(float(open(CONFIG, "r").read().split()[0]))
 | 
				
			||||||
 | 
					    except Exception as E:
 | 
				
			||||||
 | 
					        print("Error: " + type(E).__name__)
 | 
				
			||||||
 | 
					        if type(E).__name__ == "KeyboardInterrupt":
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user