Artsy
This commit is contained in:
parent
b07177b920
commit
5aad3e1cab
21
__init__.py
21
__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:
|
||||
|
|
Loading…
Reference in New Issue
Block a user