Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.24 KB | None | 0 0
  1. import praw
  2. import pickledb
  3. from requests import get
  4. from time import sleep
  5. import os
  6. from InstagramAPI import InstagramAPI
  7. from random import randint
  8. import tweepy
  9. from PIL import Image, ImageOps
  10.  
  11.  
  12. consumer_key = 'XXXX'
  13. consumer_secret = 'XXXX'
  14. access_key = 'XXXX'
  15. access_secret = 'XXXX'
  16.  
  17. client_id = 'XXXX'
  18. client_secret = 'XXXX'
  19. user_agent = 'Getter thing (by /u/impshum)'
  20. target_subreddit = 'memes'
  21.  
  22. instauser = 'XXXX'
  23. instapass = 'XXXX'
  24.  
  25. twitter_post = 1
  26. instagram_post = 1
  27.  
  28. reddit = praw.Reddit(client_id=client_id,
  29.                      client_secret=client_secret,
  30.                      user_agent=user_agent)
  31.  
  32.  
  33. db = pickledb.load('data.db', True)
  34.  
  35.  
  36. def get_img(what):
  37.     img = get(what)
  38.     if img.status_code == 200:
  39.         img = img.content
  40.         image = what.split('/')[-1]
  41.         image = 'images/{}'.format(image)
  42.         with open(image, 'wb') as f:
  43.             f.write(img)
  44.         return image
  45.     else:
  46.         return False
  47.  
  48.  
  49. def get_images():
  50.     c = 0
  51.     for submission in reddit.subreddit(target_subreddit).hot(limit=100):
  52.         url = submission.url
  53.         if not db.exists(url):
  54.             if get_img(url):
  55.                 db.set(url, 0)
  56.                 print('Downloading {}'.format(url))
  57.                 c += 1
  58.         if c >= 12:
  59.             break
  60.  
  61.  
  62. def get_videos():
  63.     c = 0
  64.     for submission in reddit.subreddit(target_subreddit).hot(limit=100):
  65.         url = submission.url
  66.         if not db.exists(url):
  67.             if 'youtube' in url or 'v.redd.it' in url:
  68.                 os.system('youtube-dl -o "videos/%(title)s.%(ext)s" {}'.format(url))
  69.                 c += 1
  70.         if c >= 12:
  71.             break
  72.  
  73.  
  74. def square_image(im_pth):
  75.     desired_size = 1080
  76.     im = Image.open(im_pth)
  77.     old_size = im.size
  78.     ratio = float(desired_size) / max(old_size)
  79.     new_size = tuple([int(x * ratio) for x in old_size])
  80.     im = im.resize(new_size, Image.ANTIALIAS)
  81.     new_im = Image.new("RGB", (desired_size, desired_size))
  82.     new_im.paste(im, ((desired_size - new_size[0]) // 2,
  83.                       (desired_size - new_size[1]) // 2))
  84.     new_im.save(im_pth)
  85.  
  86.  
  87. def post_images():
  88.     if instagram_post:
  89.         i_api = InstagramAPI(instauser, instapass)
  90.         i_api.login()
  91.  
  92.     if twitter_post:
  93.         auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
  94.         auth.set_access_token(access_key, access_secret)
  95.         t_api = tweepy.API(auth)
  96.  
  97.     for x in db.getall():
  98.         if not db.get(x):
  99.             db.set(x, 1)
  100.             im = x.split('/')[-1]
  101.             im = 'images/{}'.format(im)
  102.  
  103.             print('Posting: {}'.format(im))
  104.  
  105.             if twitter_post:
  106.                 t_api.update_with_media(im)
  107.  
  108.             if instagram_post:
  109.                 square_image(im)
  110.                 i_api.uploadPhoto(im, caption='')
  111.  
  112.             os.remove(im)
  113.             sleep(randint(750, 1050))
  114.  
  115.  
  116. def create_video():
  117.     os.system("mogrify -format jpg images/*.png")
  118.     os.system("ffmpeg -framerate 1 -pattern_type glob -i 'images/*.jpg' -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4")
  119.  
  120.  
  121. def main():
  122.     while True:
  123.         # db.deldb()
  124.         get_images()
  125.         get_videos()
  126.         post_images()
  127.  
  128.  
  129. if __name__ == '__main__':
  130.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement