From 5aad3e1cabb2ae1ca988cb59891065f736dbe1b8 Mon Sep 17 00:00:00 2001 From: Jon Michael Aanes Date: Sat, 22 Jul 2023 21:56:31 +0200 Subject: [PATCH] Artsy --- __init__.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/__init__.py b/__init__.py index 5707aa1..642ab7c 100644 --- a/__init__.py +++ b/__init__.py @@ -1,12 +1,12 @@ from dataclasses import dataclass from enforce_typing import enforce_types from typing import List, Set, Optional, Union -from enum import Enum +import enum import datetime import re import urllib.parse -class SocialSiteId(Enum): +class SocialSiteId(enum.Enum): REDDIT = 1 # Should have been named REDDIT_SUBREDDIT REDDIT_USER = 22 REDDIT_SUBREDDIT = REDDIT @@ -31,13 +31,14 @@ class SocialSiteId(Enum): ETSY_SHOP = 19 KO_FI = 20 BEHANCE_PAGE = 21 - TIKTOK_USER = 22 + TIKTOK_USER = 7085 PIXIV_USER = 23 CARRD_PAGE = 24 HENTAI_FOUNDRY = 25 YOUTUBE_CHANNEL_HANDLE = 26 VIMEO_CHANNEL = 27 NEWGROUNDS_PAGE = 28 + ARTSY_ARTIST = 2042 def wikidata_property(self, client): return client.get(WIKIDATA_PROPERTIES[self]) @@ -62,6 +63,8 @@ class WikidataInfo(object): WIKIDATA_PROPERTIES = { SocialSiteId.EMAIL: WikidataInfo(968, None), + SocialSiteId.RSS_FEED: WikidataInfo(1079, None), + SocialSiteId.FACEBOOK_PAGE: WikidataInfo(2013, None), SocialSiteId.INSTAGRAM_PAGE: WikidataInfo(2003, None), SocialSiteId.LINKTREE_PAGE: WikidataInfo(11079, None), @@ -71,7 +74,7 @@ WIKIDATA_PROPERTIES = { SocialSiteId.SONGKICK_ARTIST: WikidataInfo(3478, None), SocialSiteId.TWITCH: WikidataInfo(5797, None), SocialSiteId.TWITTER: WikidataInfo(2002, None), - SocialSiteId.WIKIDATA: WikidataInfo(43649390, None), + SocialSiteId.WIKIDATA: WikidataInfo(None, 2013), SocialSiteId.TUMBLR: WikidataInfo(3943, None), SocialSiteId.TIKTOK_USER: WikidataInfo(7085, None), @@ -87,13 +90,14 @@ WIKIDATA_PROPERTIES = { SocialSiteId.YOUTUBE_CHANNEL_HANDLE: WikidataInfo(11245, 866), SocialSiteId.VIMEO_CHANNEL: WikidataInfo(4015, 156376), SocialSiteId.NEWGROUNDS_PAGE: WikidataInfo(None, 263655), + SocialSiteId.ARTSY_ARTIST: WikidataInfo(2042, 4796642), } def re_social_subdomain(main_domain): #return r'^(?:https?:\/\/)?([\w_-]+)\.'+re.escape(main_domain)+'\/?$' return r'^(?:https?:\/\/)?([\w_-]+)\.'+re.escape(main_domain)+'(\/.*)?$' -RE_ID = r'@?([\w_.-]+)' +RE_ID = r'@?([^/]+)' def re_social_path(main_domain): #return r'^(?:https?:\/\/)?(?:www\.)?'+re.escape(main_domain)+'\/'+RE_ID+'\/?$' @@ -136,7 +140,8 @@ URL_PARSE_HENTAI_FOUNDRY= re_social_path_adv('hentai-foundry.com', 'user', RE_ID URL_PARSE_YOUTUBE_CHANNEL_HANDLE_1= re_social_path_adv('youtube.com', RE_ID) URL_PARSE_YOUTUBE_CHANNEL_HANDLE_2= re_social_path_adv('youtube.com', 'c', RE_ID) URL_PARSE_VIMEO_CHANNEL= re_social_path_adv('vimeo.com', RE_ID) -URL_PARSE_NEWGROUNDS_PAGE=re_social_subdomain('newgrounds.com') +URL_PARSE_NEWGROUNDS_PAGE = re_social_subdomain('newgrounds.com') +URL_PARSE_ARTSY_ARTIST = re_social_path_adv('artsy.net', 'artist', RE_ID) REGEXES = [ # Reddit @@ -215,9 +220,13 @@ REGEXES = [ # Newgrounds (URL_PARSE_NEWGROUNDS_PAGE, SocialSiteId.NEWGROUNDS_PAGE), + + # Artsy + (URL_PARSE_ARTSY_ARTIST, SocialSiteId.ARTSY_ARTIST), ] def determine_social_from_url_internally(url): + assert isinstance(url, str) # Regexes for (social_site_url_regex, social_site_id) in REGEXES: