Проверка, является ли сообщение Reddit видео или нет - PullRequest
0 голосов
/ 22 марта 2020

Я создаю бота, который загружает сообщения из выбранного мной субредита, но я хочу только загружать фотографии. Мой код уже гарантирует, что сообщение не является текстом, но я не могу проверить, видео или нет. Если сообщение является видео, программа должна просто пропустить его.

Вот мой код:

from InstagramAPI import InstagramAPI
import praw
import requests
import urllib.request
import time
import keyboard
from PIL import Image
import math

#make a reddit acount and look up how to find this stuff. its called PRAW
reddit = praw.Reddit(client_id='***', 
    client_secret='***', 
    username='', 
    password='', 

    user_agent='chrome')


def DLimage(url, filePath, fileName):
    fullPath = filePath + fileName + '.jpg'
    urllib.request.urlretrieve(url, fullPath)


#folder path to store downloaded images
filePath = "/Users/***/AppBot/WTF/"

subreddit = reddit.subreddit('videos') #subreddit to take images from

waitTime = 2 #to prevent reddit badgateway error. DONt change

numRounds = 100 #how many posts

postFrequency = 600 # how often to post in seconds. 

numPics = 100 #how many pics per post

for x in range(numRounds):
    new_memes = subreddit.top('all') #.hot/.rising/.new   reddit sorting algorithm
    authors = []
    photoAlbum = []
    print("Round/post number:", x)
    for subbmission in new_memes:
        if subbmission.preview == True: #checking if post is only text.
            #print("Post was text, skipping to next post.")
            pass
        else:
            continue
        url = subbmission.url
        time.sleep(waitTime)
        fileName = str(subbmission)
        fullPath = filePath + fileName + '.jpg'
        #print(fullPath)
        time.sleep(waitTime)
        #print(url)
        try:
            DLimage(url, filePath, fileName)
        except:
            print("scratch that, next post.")
            continue
        time.sleep(waitTime)

        img = Image.open(fullPath)
        width, height = img.size
        #img = img.resize((1000, 1020), Image.NEAREST) #image resize. width/height
        img = img.convert("RGB")
        img.save(fullPath)
    time.sleep(postFrequency)
...