summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/flickr.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2023-10-03 18:31:58 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2023-10-03 18:31:58 -0400
commitb8758ecd073910ce3220b2e68399147b425c37b8 (patch)
treed6aee20213508c8f425cbacb3d714367eca904c5 /gallery_dl/extractor/flickr.py
parente2f67519f8c1750a71aab3dc56b8345fff21bac5 (diff)
New upstream version 1.26.0.upstream/1.26.0
Diffstat (limited to 'gallery_dl/extractor/flickr.py')
-rw-r--r--gallery_dl/extractor/flickr.py91
1 files changed, 16 insertions, 75 deletions
diff --git a/gallery_dl/extractor/flickr.py b/gallery_dl/extractor/flickr.py
index d44ff3c..ea32765 100644
--- a/gallery_dl/extractor/flickr.py
+++ b/gallery_dl/extractor/flickr.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2017-2022 Mike Fährmann
+# Copyright 2017-2023 Mike Fährmann
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -20,12 +20,16 @@ class FlickrExtractor(Extractor):
filename_fmt = "{category}_{id}.{extension}"
directory_fmt = ("{category}", "{user[username]}")
archive_fmt = "{id}"
- cookiedomain = None
+ cookies_domain = None
+ request_interval = (1.0, 2.0)
+ request_interval_min = 0.2
def __init__(self, match):
Extractor.__init__(self, match)
- self.api = FlickrAPI(self)
self.item_id = match.group(1)
+
+ def _init(self):
+ self.api = FlickrAPI(self)
self.user = None
def items(self):
@@ -60,42 +64,7 @@ class FlickrImageExtractor(FlickrExtractor):
r"(?:(?:www\.|secure\.|m\.)?flickr\.com/photos/[^/?#]+/"
r"|[\w-]+\.static\.?flickr\.com/(?:\d+/)+)(\d+)"
r"|flic\.kr/p/([A-Za-z1-9]+))")
- test = (
- ("https://www.flickr.com/photos/departingyyz/16089302239", {
- "pattern": pattern,
- "content": ("3133006c6d657fe54cf7d4c46b82abbcb0efaf9f",
- "0821a28ee46386e85b02b67cf2720063440a228c"),
- "keyword": {
- "comments": int,
- "description": str,
- "extension": "jpg",
- "filename": "16089302239_de18cd8017_b",
- "id": 16089302239,
- "height": 683,
- "label": "Large",
- "media": "photo",
- "url": str,
- "views": int,
- "width": 1024,
- },
- }),
- ("https://secure.flickr.com/photos/departingyyz/16089302239"),
- ("https://m.flickr.com/photos/departingyyz/16089302239"),
- ("https://flickr.com/photos/departingyyz/16089302239"),
-
- ("https://www.flickr.com/photos/145617051@N08/46733161535", {
- "count": 1,
- "keyword": {"media": "video"},
- }),
- ("http://c2.staticflickr.com/2/1475/24531000464_9a7503ae68_b.jpg", {
- "pattern": pattern}),
- ("https://farm2.static.flickr.com/1035/1188352415_cb139831d0.jpg", {
- "pattern": pattern}),
- ("https://flic.kr/p/FPVo9U", {
- "pattern": pattern}),
- ("https://www.flickr.com/photos/zzz/16089302238", {
- "exception": exception.NotFoundError}),
- )
+ example = "https://www.flickr.com/photos/USER/12345"
def __init__(self, match):
FlickrExtractor.__init__(self, match)
@@ -141,18 +110,7 @@ class FlickrAlbumExtractor(FlickrExtractor):
"Albums", "{album[id]} {album[title]}")
archive_fmt = "a_{album[id]}_{id}"
pattern = BASE_PATTERN + r"/photos/([^/?#]+)/(?:album|set)s(?:/(\d+))?"
- test = (
- (("https://www.flickr.com/photos/shona_s/albums/72157633471741607"), {
- "pattern": FlickrImageExtractor.pattern,
- "count": 6,
- }),
- ("https://www.flickr.com/photos/shona_s/albums", {
- "pattern": pattern,
- "count": 2,
- }),
- ("https://secure.flickr.com/photos/shona_s/albums"),
- ("https://m.flickr.com/photos/shona_s/albums"),
- )
+ example = "https://www.flickr.com/photos/USER/albums/12345"
def __init__(self, match):
FlickrExtractor.__init__(self, match)
@@ -190,11 +148,7 @@ class FlickrGalleryExtractor(FlickrExtractor):
"Galleries", "{gallery[gallery_id]} {gallery[title]}")
archive_fmt = "g_{gallery[id]}_{id}"
pattern = BASE_PATTERN + r"/photos/([^/?#]+)/galleries/(\d+)"
- test = (("https://www.flickr.com/photos/flickr/"
- "galleries/72157681572514792/"), {
- "pattern": FlickrImageExtractor.pattern,
- "count": ">= 10",
- })
+ example = "https://www.flickr.com/photos/USER/galleries/12345/"
def __init__(self, match):
FlickrExtractor.__init__(self, match)
@@ -215,10 +169,7 @@ class FlickrGroupExtractor(FlickrExtractor):
directory_fmt = ("{category}", "Groups", "{group[groupname]}")
archive_fmt = "G_{group[nsid]}_{id}"
pattern = BASE_PATTERN + r"/groups/([^/?#]+)"
- test = ("https://www.flickr.com/groups/bird_headshots/", {
- "pattern": FlickrImageExtractor.pattern,
- "count": "> 150",
- })
+ example = "https://www.flickr.com/groups/NAME/"
def metadata(self):
self.group = self.api.urls_lookupGroup(self.item_id)
@@ -233,10 +184,7 @@ class FlickrUserExtractor(FlickrExtractor):
subcategory = "user"
archive_fmt = "u_{user[nsid]}_{id}"
pattern = BASE_PATTERN + r"/photos/([^/?#]+)/?$"
- test = ("https://www.flickr.com/photos/shona_s/", {
- "pattern": FlickrImageExtractor.pattern,
- "count": 28,
- })
+ example = "https://www.flickr.com/photos/USER/"
def photos(self):
return self.api.people_getPhotos(self.user["nsid"])
@@ -248,10 +196,7 @@ class FlickrFavoriteExtractor(FlickrExtractor):
directory_fmt = ("{category}", "{user[username]}", "Favorites")
archive_fmt = "f_{user[nsid]}_{id}"
pattern = BASE_PATTERN + r"/photos/([^/?#]+)/favorites"
- test = ("https://www.flickr.com/photos/shona_s/favorites", {
- "pattern": FlickrImageExtractor.pattern,
- "count": 4,
- })
+ example = "https://www.flickr.com/photos/USER/favorites"
def photos(self):
return self.api.favorites_getList(self.user["nsid"])
@@ -263,11 +208,7 @@ class FlickrSearchExtractor(FlickrExtractor):
directory_fmt = ("{category}", "Search", "{search[text]}")
archive_fmt = "s_{search}_{id}"
pattern = BASE_PATTERN + r"/search/?\?([^#]+)"
- test = (
- ("https://flickr.com/search/?text=mountain"),
- ("https://flickr.com/search/?text=tree%20cloud%20house"
- "&color_codes=4&styles=minimalism"),
- )
+ example = "https://flickr.com/search/?text=QUERY"
def __init__(self, match):
FlickrExtractor.__init__(self, match)
@@ -289,8 +230,8 @@ class FlickrAPI(oauth.OAuth1API):
"""
API_URL = "https://api.flickr.com/services/rest/"
- API_KEY = "ac4fd7aa98585b9eee1ba761c209de68"
- API_SECRET = "3adb0f568dc68393"
+ API_KEY = "f8f78d1a40debf471f0b22fa2d00525f"
+ API_SECRET = "4f9dae1113e45556"
FORMATS = [
("o" , "Original" , None),
("6k", "X-Large 6K" , 6144),