diff options
author | jwansek <eddie.atten.ea29@gmail.com> | 2020-10-04 01:49:36 +0100 |
---|---|---|
committer | jwansek <eddie.atten.ea29@gmail.com> | 2020-10-04 01:49:36 +0100 |
commit | 55bfe256fb77dd083ab7283d795f8932938e73f1 (patch) | |
tree | 29cb800c82dd0d68ebeeb63f6442ff7dbde2d64e | |
parent | b4817b94bd6d4c1e177fe55201bf0da0f335de75 (diff) | |
download | yaoi-communism-55bfe256fb77dd083ab7283d795f8932938e73f1.tar.gz yaoi-communism-55bfe256fb77dd083ab7283d795f8932938e73f1.zip |
fixed bug where pixiv links 403'd
-rw-r--r-- | bot.py | 5 | ||||
-rw-r--r-- | get_images.py | 15 | ||||
-rw-r--r-- | utils.py | 25 |
3 files changed, 15 insertions, 30 deletions
@@ -7,7 +7,10 @@ import get_images twitter = Twython(*get_images.CONFIG["twitterapi"].values())
def post():
- impath, source, text = get_images.main()
+ images = get_images.main()
+ while images is None:
+ images = get_images.main()
+ impath, source, text = images
with open(impath, "rb") as img:
response = twitter.upload_media(media = img)
message = f"{text} ({source})"
diff --git a/get_images.py b/get_images.py index 37becdd..bd1efd3 100644 --- a/get_images.py +++ b/get_images.py @@ -85,6 +85,13 @@ def get_num_pages(tags): else: return int(int(urllib.parse.parse_qs(page_element.get("href"))["pid"][0]) / (5*8)) +def fix_source_url(url): + if "pixiv.net" in url or "pximg.net" in url: + if requests.get(url).status_code == 403: + return "https://www.pixiv.net/en/artworks/%s" % url.split("/")[-1][:8] + + return url + def append_blacklisted(id_): with open(CONFIG["blacklist"], "a") as f: f.write(str(id_) + "\n") @@ -116,13 +123,11 @@ def main(draw_faces = False): simg = get_image(get_random_searchtag()) except ConnectionError: logging.warning("Retried since couldn't get source...") - main() - return + return main() if id_is_blacklisted(simg.id): logging.info("Retried, already posted image...") - main() - return + return main() append_blacklisted(simg.id) @@ -159,7 +164,7 @@ def main(draw_faces = False): y = y + height pilimg.save("img.png") - return "img.png", simg.source, text + return "img.png", fix_source_url(simg.source), text if __name__ == "__main__": @@ -26,30 +26,6 @@ def draw_with_border(x, y, message, color_fill, color_border, font, draw): draw.text((x, y), message, fill=color_fill, font=font)
-
-def detect(filename):
- result = subprocess.run(
- [
- "conda",
- "activate",
- "detection",
- "&&",
- "python",
- "anime-face-detector/main.py ",
- "-i",
- filename,
- "-o",
- "output.json",
- ],
- shell=True,
- stdout=subprocess.DEVNULL,
- )
- with open("output.json", "r") as f:
- output = json.load(f)
- print(output)
- return [f["bbox"] for f in output[filename]]
-
-
def set_font(image, message, font_name="fonts/Caveat-Bold.ttf"):
# keep increasing font size until the font area is 1/5th the size of image
font_size = 10
@@ -137,3 +113,4 @@ def get_quote(p): with open(p, "r", encoding="utf-8") as f:
lines = f.read().splitlines()
return random.choice(lines)
+
|