* include full metadata object with each url
Fixes #4286
* rename 'url_metadata' to 'file'
237 lines
7.2 KiB
Python
237 lines
7.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
# 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
|
|
# published by the Free Software Foundation.
|
|
|
|
from gallery_dl.extractor import patreon
|
|
from gallery_dl import exception
|
|
|
|
|
|
__tests__ = (
|
|
{
|
|
"#url" : "https://www.patreon.com/koveliana",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#range" : "1-15",
|
|
"#count" : 15,
|
|
|
|
"attachments" : list,
|
|
"campaign" : dict,
|
|
"comment_count": int,
|
|
"content" : str,
|
|
"creator" : dict,
|
|
"date" : "type:datetime",
|
|
"id" : int,
|
|
"images" : list,
|
|
"like_count" : int,
|
|
"post_type" : str,
|
|
"published_at" : str,
|
|
"title" : str,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/koveliana/posts?filters[month]=2020-3",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#count" : 1,
|
|
|
|
"date": "dt:2020-03-30 21:21:44",
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/kovelianot",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#exception": exception.NotFoundError,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/cw/anythingelse",
|
|
"#comment" : "Next.js 13 - /cw/ URL",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/c/koveliana",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/user?u=2931440",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/user/posts/?u=2931440",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/user?c=369707",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/profile/creators?u=2931440",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/profile/creators?c=369707",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/id:369707",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/create",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#fail" : True,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/login",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#fail" : True,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/search?q=foobar",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#fail" : True,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/messages/?mode=user&tab=chats",
|
|
"#class" : patreon.PatreonCreatorExtractor,
|
|
"#fail" : True,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/home",
|
|
"#class" : patreon.PatreonUserExtractor,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/precious-metal-23563293",
|
|
"#comment" : "postfile + attachments",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#count" : 4,
|
|
|
|
"file": {dict, None},
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/free-mari-8s-113049301",
|
|
"#comment" : "'This page has been removed' - postfile + attachments_media (#6241)",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#exception": exception.NotFoundError,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/56127163",
|
|
"#comment" : "account suspended",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#count" : 0,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/free-post-12497641",
|
|
"#comment" : "tags (#1539)",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#pattern" : r"https://c10.patreonusercontent.com/4/patreon-media/p/post/12497641/3d99f5f5b635428ca237fedf0f223f1a/eyJhIjoxLCJwIjoxfQ%3D%3D/1\.JPG\?.+",
|
|
|
|
"tags": ["AWMedia"],
|
|
"campaign": {
|
|
"avatar_photo_image_urls": dict,
|
|
"avatar_photo_url": "https://c10.patreonusercontent.com/4/patreon-media/p/campaign/350434/cadc16f03fa1460f9185505b0a858c1b/eyJ3Ijo2MjB9/1.png?token-hash=tpUv_bM0-mEuUSizstb00UrVA-btPS5RyGSCWRx24oc%3D",
|
|
"creation_name": "creating Art Photography/Videography",
|
|
"currency": "USD",
|
|
"current_user_can_be_free_member": True,
|
|
"current_user_is_free_member": False,
|
|
"is_free_membership_paused": False,
|
|
"is_monthly": True,
|
|
"name": "ReedandWeep",
|
|
"offers_free_membership": True,
|
|
"offers_paid_membership": True,
|
|
"pay_per_name": "month",
|
|
"pledge_url": "https://www.patreon.com/checkout/Reedandweep",
|
|
"primary_theme_color": None,
|
|
"show_audio_post_download_links": True,
|
|
"show_free_membership_cta": False,
|
|
"url": "https://www.patreon.com/Reedandweep",
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/free-post-12497641",
|
|
"#comment" : "custom image format (#6569)",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#options" : {"format-images": "thumbnail"},
|
|
"#pattern" : r"https://c10.patreonusercontent.com/4/patreon-media/p/post/12497641/3d99f5f5b635428ca237fedf0f223f1a/eyJoIjozNjAsInciOjM2MH0%3D/1\.JPG\?.+",
|
|
"#sha1_content": (
|
|
"2967d7567d55debdfa59cfd27cd5edf89d9c3503",
|
|
"190e249295eeca1a8ffbcf1aece788b4f69bbb64",
|
|
)
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/m3u8-94714289",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#pattern" : [
|
|
r"https://c10\.patreonusercontent\.com/4/patreon-media/p/post/94714289/be3d8eb994ae44eca4baffcdc6dd25fc/eyJhIjoxLCJwIjoxfQ%3D%3D/1\.png",
|
|
r"ytdl:https://stream\.mux\.com/NLrxTLdxyGStpOgapJAtB8uPGAaokEcj8YovML00y2DY\.m3u8\?token=ey",
|
|
]
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/posts/not-found-123",
|
|
"#class" : patreon.PatreonPostExtractor,
|
|
"#exception": exception.NotFoundError,
|
|
},
|
|
|
|
{
|
|
"#url" : "https://www.patreon.com/collection/15764",
|
|
"#class" : patreon.PatreonCollectionExtractor,
|
|
"#range" : "1-3",
|
|
"#pattern" : (
|
|
r"https://c10.patreonusercontent.com/4/patreon-media/p/post/32798362/957d49296e4f48ef80718d0de98c15a4/eyJhIjoxLCJwIjoxfQ%3D%3D/2.jpg\?token-hash=.+",
|
|
r"ytdl:https://stream.mux.com/h4DYqFU901qkkAwYmRWZPraVk5DvTJTlcSdhGV00006KBE.m3u8\?token=ey.+",
|
|
r"https://c10.patreonusercontent.com/4/patreon-media/p/post/32798374/357b0133a476427a99169b4400ee03d4/eyJhIjoxLCJwIjoxfQ%3D%3D/2.jpg\?token-hash=.+",
|
|
),
|
|
|
|
"campaign" : {
|
|
"currency" : "USD",
|
|
"is_monthly" : True,
|
|
"is_nsfw" : False,
|
|
"name" : "YaBoyRoshi",
|
|
},
|
|
"collection" : {
|
|
"created_at" : "2023-08-31T14:10:41.000+00:00",
|
|
"date" : "dt:2023-08-31 14:10:41",
|
|
"default_layout" : "grid",
|
|
"description" : "",
|
|
"edited_at" : "2025-07-16T22:58:10.834+00:00",
|
|
"id" : "15764",
|
|
"num_draft_posts": 0,
|
|
"num_posts" : 207,
|
|
"num_posts_visible_for_creation": 207,
|
|
"num_scheduled_posts": 8,
|
|
"post_sort_type" : "custom",
|
|
"title" : "JoJo's Bizarre Adventure",
|
|
"post_ids" : list,
|
|
"thumbnail" : dict,
|
|
},
|
|
"creator" : {
|
|
"date" : "dt:2018-10-17 05:45:19",
|
|
"first_name": "YaBoyRoshi",
|
|
"full_name" : "YaBoyRoshi",
|
|
"id" : "14264111",
|
|
"vanity" : "yaboyroshi",
|
|
},
|
|
},
|
|
|
|
)
|