Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import praw
- import pickledb
- from requests import get
- from time import sleep
- import os
- from InstagramAPI import InstagramAPI
- from random import randint
- import tweepy
- from PIL import Image, ImageOps
- consumer_key = 'XXXX'
- consumer_secret = 'XXXX'
- access_key = 'XXXX'
- access_secret = 'XXXX'
- client_id = 'XXXX'
- client_secret = 'XXXX'
- user_agent = 'Getter thing (by /u/impshum)'
- target_subreddit = 'memes'
- instauser = 'XXXX'
- instapass = 'XXXX'
- twitter_post = 1
- instagram_post = 1
- reddit = praw.Reddit(client_id=client_id,
- client_secret=client_secret,
- user_agent=user_agent)
- db = pickledb.load('data.db', True)
- def get_img(what):
- img = get(what)
- if img.status_code == 200:
- img = img.content
- image = what.split('/')[-1]
- image = 'images/{}'.format(image)
- with open(image, 'wb') as f:
- f.write(img)
- return image
- else:
- return False
- def get_images():
- c = 0
- for submission in reddit.subreddit(target_subreddit).hot(limit=100):
- url = submission.url
- if not db.exists(url):
- if get_img(url):
- db.set(url, 0)
- print('Downloading {}'.format(url))
- c += 1
- if c >= 12:
- break
- def get_videos():
- c = 0
- for submission in reddit.subreddit(target_subreddit).hot(limit=100):
- url = submission.url
- if not db.exists(url):
- if 'youtube' in url or 'v.redd.it' in url:
- os.system('youtube-dl -o "videos/%(title)s.%(ext)s" {}'.format(url))
- c += 1
- if c >= 12:
- break
- def square_image(im_pth):
- desired_size = 1080
- im = Image.open(im_pth)
- old_size = im.size
- ratio = float(desired_size) / max(old_size)
- new_size = tuple([int(x * ratio) for x in old_size])
- im = im.resize(new_size, Image.ANTIALIAS)
- new_im = Image.new("RGB", (desired_size, desired_size))
- new_im.paste(im, ((desired_size - new_size[0]) // 2,
- (desired_size - new_size[1]) // 2))
- new_im.save(im_pth)
- def post_images():
- if instagram_post:
- i_api = InstagramAPI(instauser, instapass)
- i_api.login()
- if twitter_post:
- auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
- auth.set_access_token(access_key, access_secret)
- t_api = tweepy.API(auth)
- for x in db.getall():
- if not db.get(x):
- db.set(x, 1)
- im = x.split('/')[-1]
- im = 'images/{}'.format(im)
- print('Posting: {}'.format(im))
- if twitter_post:
- t_api.update_with_media(im)
- if instagram_post:
- square_image(im)
- i_api.uploadPhoto(im, caption='')
- os.remove(im)
- sleep(randint(750, 1050))
- def create_video():
- os.system("mogrify -format jpg images/*.png")
- os.system("ffmpeg -framerate 1 -pattern_type glob -i 'images/*.jpg' -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4")
- def main():
- while True:
- # db.deldb()
- get_images()
- get_videos()
- post_images()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement