Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! python3
- import requests, bs4, pprint, os, datetime, ctypes, random, math
- from PIL import Image
- from time import sleep
- def ZmienTapete(pathZdj):
- SPI_SETDESKWALLPAPER = 20
- ctypes.windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, pathZdj, 1 | 2)
- print('''
- Nazwa = wykopowaTapeta
- Wersja = v02.2015.09.03
- Autor = pawelpel
- ''')
- #Pobieram nazwe uzytkownika z pliku txt
- try:
- nazwaLudzia = open(os.getcwd()+'\\nazwaUzytkownika.txt')
- ludzName = nazwaLudzia.read()
- except FileNotFoundError:
- nazwaLudzia = open(os.getcwd()+'\\nazwaUzytkownika.txt', 'w')
- nazwaLudzia.write('bezoka')
- ludzName = 'bezoka'
- print('Tworze plik .txt z nazwa uzytkownika: ' + ludzName + '.')
- nazwaLudzia.close()
- print('Odczytuje nazwe uzytkownika.')
- print('Odczytano uzytkownika: ' + ludzName)
- #Tworze liste url'li do zdjęć z podanej strony
- while True:
- try:
- print('Laczenie z internetem...')
- res = requests.get('http://www.wykop.pl/ludzie/'+ludzName)
- res.raise_for_status()
- wykopSoup = bs4.BeautifulSoup(res.text, "html.parser")
- print('Polaczono.')
- break
- except:
- print('****************************************************************')
- print('Sprawdz poloczenie z internetem lub czy dany użytkownik istnieje.')
- print('Sprobowac jeszcze raz? Nacisnij: Y - tak. <Inny klawisz> - nie.')
- odp = input()
- if odp == ('y' or 'Y'):
- nazwaLudzia = open(os.getcwd()+'\\nazwaUzytkownika.txt')
- ludzName = nazwaLudzia.read()
- nazwaLudzia.close()
- continue
- else:
- raise SystemExit
- urlList = []
- print("Pobieram url'e.")
- for img in wykopSoup.select('li img'):
- if str(img.get('data-original'))[:9] == 'http://x3':
- #Drukowanie url'li
- #print(img.get('data-original'))
- urlList.append(str(img.get('data-original')))
- #Tworze folder na zdj
- loc = os.getcwd()
- nowyFolder = loc + '\\Zdjecia ' + str(datetime.datetime.now())[:10]
- try:
- os.makedirs(nowyFolder)
- print('Tworze nowy folder.')
- except FileExistsError:
- print('Nie towrze nowego folderu.')
- #Pobieram zdjecia do folderu
- print('Pobieram zdjecia do folderu.')
- for i in range(len(urlList)):
- zdjRes = requests.get(urlList[i])
- zdjRes.raise_for_status()
- zdj = open(os.path.join(nowyFolder, os.path.basename(str(i+1))+'.jpg'), 'wb')
- for i in zdjRes.iter_content(10000000000):
- zdj.write(i)
- zdj.close()
- print('Pobralem ' + str(len(urlList)) + ' zdjec.')
- #Rozdzielczosc ekranu
- user32 = ctypes.windll.user32
- screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
- width, height = screensize
- #Ile zdjec na kolazu?
- if len(urlList) > 16:
- iloscZdj = 16
- elif len(urlList) > 4:
- iloscZdj = 4
- else:
- print('****************************************************************')
- print('Niewystarczajaco zdjec do stworzenia kolazu!')
- print('Czy chcesz ustwic na tapete losowe zdjecie z pobranych?')
- print('Nacisnij: Y - tak, <Inny klawisz> - wyjscie z programu')
- print('Odp: ', end='')
- odp2 = input()
- if odp2 == ('Y' or 'y'):
- ZmienTapete(nowyFolder + '\\' + str(random.randint(1, len(urlList))) + '.jpg')
- else:
- raise SystemExit
- iloscZdjX= math.sqrt(iloscZdj)
- iloscZdjY= math.sqrt(iloscZdj)
- #Funkcja resize zdjecia
- def DostosujZdjDoRozmiaruEkranu(sciezkaZdj):
- szerokosc, wysokosc = screensize
- szerokosc = int(szerokosc/(iloscZdjX))
- wysokosc = int(wysokosc/(iloscZdjY))
- zdj = Image.open(sciezkaZdj)
- nowezdj = zdj.resize((szerokosc, wysokosc))
- nowezdj.save(nowyFolder+'\\'+os.path.basename(sciezkaZdj))
- ktoreZdj = []
- while True:
- try:
- losoweZdj = random.randint(1,len(urlList))
- if losoweZdj not in ktoreZdj:
- ktoreZdj.append(losoweZdj)
- if len(ktoreZdj) == iloscZdj:
- break
- except ValueError:
- print('ValueError, probuje ponownie...')
- sleep(5)
- continue
- #Przejscie przez wszystkie zdj do kolazu
- for k in ktoreZdj:
- DostosujZdjDoRozmiaruEkranu(nowyFolder + '\\' + str(k) + '.jpg')
- #tworzenie podstawy kolazu
- tapeta = Image.open(nowyFolder +'\\1.jpg')
- nowaTapeta = tapeta.resize((width,height))
- nowaTapeta.save(nowyFolder + '\\nowaTapeta.jpg')
- print('Tworze kolaz...')
- i = 0
- nowaTapeta = Image.open(nowyFolder + '\\nowaTapeta.jpg')
- for left in range(0, width, int(width/iloscZdjX)):
- for top in range(0, height, int(height/iloscZdjY)):
- if i >= 16:
- break
- #Drukowanie wybranych pozycji czesci kolazu
- #print(left, top)
- czescKolazu = Image.open(nowyFolder+'\\'+str(ktoreZdj[i])+'.jpg')
- czescKolazu.copy()
- nowaTapeta.paste(czescKolazu, (left, top))
- i = i+1
- print('Zapisuje nowa tapeta.')
- nowaTapeta.save(nowyFolder + '\\nowaTapeta.jpg')
- print('Ustawiam nowa tapete.')
- ZmienTapete(nowyFolder + '\\nowaTapeta.jpg')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement