reddit-image-wall-getter/reddit_imgs/runner.py

163 lines
5.2 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
import reddit_imgs.sync
import reddit_imgs.fetch
import reddit_imgs.reorganize
import reddit_imgs.wallpapers
import os
import sys
import shutil
wdir = os.path.abspath('.')
def ensureFolderAvailability():
if not os.path.exists(os.path.join(wdir,'w')):
os.makedirs(os.path.join(wdir,'w'))
if not os.path.exists(os.path.join(wdir,'d')):
os.makedirs(os.path.join(wdir,'d'))
if not os.path.exists(os.path.join(wdir,'i')):
os.makedirs(os.path.join(wdir,'i'))
if not os.path.exists(os.path.join(wdir,'r')):
os.makedirs(os.path.join(wdir,'r'))
def managesubreddits():
i = ''
while i!='0':
print('\n'*100)
print('----------------------------------------------')
print(' Subreddit Manager ')
print('----------------------------------------------')
print('1) List monitored subreddits')
print('2) Add monitored subreddit')
print('3) Remove monitored subreddit')
print('4) Set as wallpaper source')
print('5) Unset as wallpaper source')
print()
print('0) Back')
print('----------------------------------------------')
print()
print('Enter your choice:')
i = input()
i = i.strip()
print()
print()
subreddits_dir = os.path.join(wdir,'r')
subreddits_isfolder = lambda sr: os.path.isdir(os.path.join(subreddits_dir,sr))
subreddits = sorted(filter(subreddits_isfolder, os.listdir(subreddits_dir)))
if i in ['1', '3', '4', '5']:
print('Subreddits monitored:')
for sr in subreddits:
print('/r/{0}'.format(sr),end='')
if os.path.isfile(os.path.join(subreddits_dir,sr,'wallpaper.flag')):
print('\t\t(wallpaper)')
else:
print()
print()
if i=='1':
print('Press enter to continue')
input()
if i=='3':
print('Enter the subreddit you want to get rid of:')
rem = input('/r/')
try: shutil.rmtree(os.path.join(subreddits_dir,rem))
except: pass
print()
print('Done.')
print('Press enter to continue')
input()
elif i=='2':
print('Enter the subreddit you want to add:')
add = input('/r/')
try: os.makedirs(os.path.join(subreddits_dir,add))
except: pass
print()
print('Done.')
print('Press enter to continue')
input()
elif i=='4':
print('Enter the subreddit you want to set as wallpaper source:')
add = input('/r/')
try:
dd = os.path.join(subreddits_dir,add)
if not os.path.exists(dd):
os.makedirs(dd)
f = open(os.path.join(dd, 'wallpaper.flag'),'w')
f.write('')
f.close()
except: pass
print()
print('Done.')
print('Press enter to continue')
input()
elif i=='5':
print('Enter the subreddit you want to unset as wallpaper source:')
add = input('/r/')
try:
dd = os.path.join(subreddits_dir,add)
if not os.path.exists(dd):
os.makedirs(dd)
f = open(os.path.join(dd, 'wallpaper.flag'),'w')
f.write('')
f.close()
os.remove(os.path.join(dd, 'wallpaper.flag'))
except: pass
print()
print('Done.')
print('Press enter to continue')
input()
def mainmenu():
i = ''
while i!='0':
print('\n'*100)
print('----------------------------------------------')
print(' Reddit Image Downloader ')
print('----------------------------------------------')
print('1) Manage subreddits')
print('2) Get link list to be downloaded from reddit')
print('3) Download grabbed links')
print('4) Group and put nice names on downloaded data')
print('5) Sepparate wallpapers')
print()
print('0) Quit')
print('----------------------------------------------')
print()
print('Enter your choice:')
i = input()
i = i.strip()
if i=='1':
managesubreddits()
elif i=='2':
reddit_imgs.sync.main()
elif i=='3':
reddit_imgs.fetch.main()
elif i=='4':
reddit_imgs.reorganize.main()
elif i=='5':
reddit_imgs.wallpapers.main()
def main():
ensureFolderAvailability()
if len(sys.argv)>1:
cmdline()
else:
mainmenu()
def cmdline():
cmd = sys.argv[1]
if cmd == 'sync':
reddit_imgs.sync.main()
elif cmd == 'fetch':
reddit_imgs.fetch.main()
elif cmd == 'reorganize':
reddit_imgs.reorganize.main()
elif cmd == 'wallpapers':
reddit_imgs.wallpapers.main()
else:
print('Usage {0} [sync/fetch/reorganize/wallpapers]'.format(sys.argv[0]))
if __name__ == '__main__':
main()