From 78459b8007e4776f57cca72ff2040921d61661cd Mon Sep 17 00:00:00 2001 From: Bobby Date: Tue, 22 Nov 2022 07:04:45 -0500 Subject: some changes for repo section --- ignis/github.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 ignis/github.py (limited to 'ignis/github.py') diff --git a/ignis/github.py b/ignis/github.py new file mode 100644 index 00000000..a4cae4bf --- /dev/null +++ b/ignis/github.py @@ -0,0 +1,42 @@ +import requests +from dotenv import load_dotenv +import os +from selenium import webdriver +from selenium.webdriver.chrome.options import Options as ChromeOptions +from selenium.webdriver.firefox.options import Options as FirefoxOptions +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from io import BytesIO +from PIL import Image + +load_dotenv() + +def get_cover(url): + image = requests.get(url).content + chrome_options = ChromeOptions() + chrome_options.add_argument("--headless") + chrome_options.add_argument("--disable-gpu") + + firefox_options = FirefoxOptions() + firefox_options.add_argument("--headless") + + driver = webdriver.Chrome(options=chrome_options) if os.getenv("ENVIRONMENT") == 'development' else webdriver.Firefox(options=firefox_options) + + driver.get(url) + try: + # take screenshot of page - 1280x640 + WebDriverWait(driver, 10).until( + EC.presence_of_element_located((By.TAG_NAME, 'svg')) + ) + driver.set_window_size(1280, 640) + image = driver.get_screenshot_as_png() + finally: + driver.quit() + + # resize image to 640x320 + image = Image.open(BytesIO(image)) + image = image.resize((640, 320)) + output = BytesIO() + image.save(output, format='PNG') + return output.getvalue() -- cgit v1.2.3