[soundgasm] add 'user' extractor (#3384)

based on code from PR #3388 by @enduser420
This commit is contained in:
Mike Fährmann
2022-12-12 12:23:59 +01:00
parent 2952add4a8
commit 3c75c3bbc4
2 changed files with 30 additions and 2 deletions

View File

@@ -772,7 +772,7 @@ Consider all sites to be NSFW unless otherwise known.
<tr>
<td>Soundgasm</td>
<td>https://soundgasm.net/</td>
<td>Audio</td>
<td>Audio, User Profiles</td>
<td></td>
</tr>
<tr>

View File

@@ -15,11 +15,13 @@ from .. import text
class SoundgasmAudioExtractor(Extractor):
"""Extractor for audio clips from soundgasm.net"""
category = "soundgasm"
subcategory = "audio"
root = "https://soundgasm.net"
directory_fmt = ("{category}", "{user}")
filename_fmt = "{title}.{extension}"
archive_fmt = "{user}_{filename}"
pattern = r"(?:https?://)?(?:www\.)?soundgasm\.net/u/([^/?#]+)/([^/?#]+)"
pattern = (r"(?:https?://)?(?:www\.)?soundgasm\.net"
r"/u(?:ser)?/([^/?#]+)/([^/?#]+)")
test = (
(("https://soundgasm.net/u/ClassWarAndPuppies2"
"/687-Otto-von-Toontown-12822"), {
@@ -40,6 +42,8 @@ class SoundgasmAudioExtractor(Extractor):
"user": "ClassWarAndPuppies2",
},
}),
("https://www.soundgasm.net/user/ClassWarAndPuppies2"
"/687-Otto-von-Toontown-12822"),
)
def __init__(self, match):
@@ -63,3 +67,27 @@ class SoundgasmAudioExtractor(Extractor):
yield Message.Directory, data
yield Message.Url, url, text.nameext_from_url(url, data)
class SoundgasmUserExtractor(Extractor):
"""Extractor for all sounds from a soundgasm user"""
category = "soundgasm"
subcategory = "user"
root = "https://soundgasm.net"
pattern = (r"(?:https?://)?(?:www\.)?soundgasm\.net"
r"/u(?:ser)?/([^/?#]+)/?$")
test = ("https://soundgasm.net/u/fierce-aphrodite", {
"pattern": SoundgasmAudioExtractor.pattern,
"count" : ">= 15",
})
def __init__(self, match):
Extractor.__init__(self, match)
self.user = match.group(1)
def items(self):
page = self.request(self.root + "/user/" + self.user).text
data = {"_extractor": SoundgasmAudioExtractor}
for sound in text.extract_iter(
page, 'class="sound-details">', "</a>"):
yield Message.Queue, text.extr(sound, '<a href="', '"'), data